通过学习《javascript设计模式与开发实践》--曾探●著 的笔记
一般的创建一个对象:
var Plane = function(blood,attackLevel,defenseLevel ){//首先是先指定一个类型
this.blood = blood;
this.attackLevel = attackLevel;
this.defenselLevel = defenseLevel;
}
var plane = new Plane(100,1,1);// 然后通过类来创建这个对象
原型模型:
不在关心对象的具体的类型,而是找到一个对象,然后通过克隆来创建一个一模一样的对象(有点狠)--注意是一模一样不论是属性对应的属性值,还是自身包含的方法都是一模一样
曾探老师给的比喻:就好像是飞机大战的网页游戏一样,某种飞机拥有分身功能,当它使用分身 技能的时候,要在页面中创建一些跟它一模一样的飞机。
原型模型使用的关键(条件)
语言本身是否提供了clone的方法,ES5中提供的object.create(),可以用来克隆对象
例子:
var Plane = function(){
this.blood = 100;
this.attackLevel = 1;
this.defenseLevel = 1;
};
var plane = new Plane();
plane.blood = 500;
plane.attackLevel = 10;
plane.defenseLevel = 7;
var clonePlane = Object.create(plane);
console.log( clonePlane.blood )//输出500
console.log(clonePlane.attackLevel )//输出10
console.log(clonePlane.defenseLevel)//输出7
在不支持Object.create 方法的浏览器中,则可以使用一下代码:
Object.create = Object.create||function(obj){
var F = function(){}
F.prototype = obj;
return new F();
}
--以上例子都是借用曾探老师的例子