JavaScript 应用原型
■知识点
原型属性可以被所有实例访问,而私有属性只能被当前实例访问。
下面通过几个实例介绍原型在代码中的应用技巧。
■实例设计
【示例1】利用原型为对象设置默认值。当原型属性与私有属性同名时,删除私有属性之后,可以访问原型属性,即可以把原型属性值作为初始化默认值。
function p(x){ //构造函数
if (x) //如果参数存在,则设置属性,该条件是关键
this.x = x; //使用参数初始化私有属性x的值
}
p.prototype.x = 0; //利用原型属性,设置私有属性x的默认值
var p1 = new p(); //实例化一个没有带参数的对象
console.log(p1.x); //返回0,即显示私有属性的默认值
var p2 = new p(1); //再次实例化,传递一个新的参数
console.log(p2.x); //返回1,即显示私有属性的初始化值
【示例2】利用原型间接实现本地数据备份。把本地对象的数据完全赋值给原型对象,相当于为该对象定义一个副本,通俗地说就是备份对象。这样当对象属性被修改时,可以通过原型对象来恢复本地对象的初始值。
function p (x){ //构造函数
this.x = x;
}
p.prototype.backup = function (){ //原型方法,备份本地对象的数据到原型对象中
for(var i in this){
p.prototype[i] = this[i];
}
}
var pi = new p(1); //实例化对象
p1.backup(); //备份实例对象中的数据
p1.x =10; //改写本地对象的属性值
console.log(p1.x) //返回10,说明属性值己经被改写
p1 = p.prototype; //恢复备份
console.log(p1.x) //返回1,说明对象的属性值己经被恢复
点击加载更多评论>>