JavaScript设想形式系列四:原型形式

什么是原型形式

原型形式 (Prototype pattern):浅显点讲就是建立一个同享的原型,并经由过程拷贝这些原型建立新的对象。用于建立反复的对象,这类范例的设想形式属于建立型形式,它供应了一种建立对象的不错挑选。

完成原型形式

我们能够经由过程JavaScript特有的原型继续特征去完成原型形式,也就是建立一个对象作为另一个对象的prototype属性值,我们也能够经由过程Object.create(prototype, optionalDescriptorObjects)来完成原型继续。

// 由于不是组织函数,所以不必大写
var someCar = {
    drive: function () { },
    name: '马自达 3'
};

// 运用Object.create建立一个新车x
var anotherCar = Object.create(someCar);
anotherCar.name = '丰田佳美';

Object.create() 要领会运用指定的原型对象及其属性去建立一个新的对象。

var vehicle = {
    getModel: function () {
        console.log('车辆的模具是:' + this.model);
    }
};

var car = Object.create(vehicle, {
    'id': {
        value: MY_GLOBAL.nextId(),
        enumerable: true 
 },
    'model': {
        value: '福特',
        enumerable: true
    }
});

假如你愿望本身去完成原型形式,而不直接运用Object.create。你能够运用一下代码完成。

var vehiclePrototype = {
    init: function (carModel) {
        this.model = carModel;
    },
    getModel: function () {
        console.log('车辆模具是:' + this.model);
    }
};


function vehicle(model) {
    function F() { };
    F.prototype = vehiclePrototype;

    var f = new F();

    f.init(model);
    return f;
}

var car = vehicle('福特Escort');
car.getModel();

总结:

原型形式,就是建立一个同享的原型,经由过程拷贝这个原型来建立新的类,用于建立反复的对象,带来性能上的提拔。

参考自汤姆大叔的博客
设想形式之原型形式

    原文作者:holyZhengs
    原文地址: https://segmentfault.com/a/1190000012920213
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞