原型模式
创建一个共享的原型
并通过拷贝这些原型创建新的对象
用于创建重复的对象
也就是创建一个对象作为另一个对象的prototype属性值,我们也可以通过Object.create(prototype, optionalDescriptorObjects)来实现原型继承。
Object.create() 方法会使用指定的原型对象及其属性去创建一个新的对象。
------ 带来性能上的提升【
1、代码简洁
2、Object.create方法是处理计算机的二进制,性能微低
】
原型模式1
原型模式2
ES5提供了原生的克隆方法:Object.create,不支持这个方法的浏览器可以使用如下代码:
function clone(obj){
function F(){};
F.prototype = obj;
return new F();
}
var ektype = clone(noumenon);
//---------------------------------------------------
var car ={
name:'比例'
}
var newPrototype = Object.create(car);
newPrototype.name="你好";
// console.log(car)
console.log(newPrototype)
//------------------------------------------------------
var new_prototype = {
init:function(tempModel){
this.model = tempModel;
},
getModel:function(){
console.log(this.model);
}
}
function newP(model){
function NewPF(){};
NewPF.prototype = new_prototype;
var newpf = new NewPF();
newpf.init(model);
return newpf
}
var f_new_prototype = newP('你好啊,傻傻');
f_new_prototype.getModel()