prototype原型

同一类型的多个对象需要共享的属性和方法,需要创建一个专门的对象来储存,这个对象就是Prototype的一个实例prototype,也就是所谓的原型。这个实例prototype的指针_proto_隐式存储在我们要创建的某类对象的构造函数内部。那么我们通过这个构造函数创建的所有实例,都拥有一个指向原型对象的指针。这个原型就相当于java语言中的某个类的静态成员的存储空间,这个空间中存放了类的全部静态成员。


而在该构造函数内部原型指针指向的原型中,也多了两个属性,其中一个constructor属性,也相当于一个指针,只不过这个指针是指向与指向所属原型的构造函数构成的实例的。这样的结果是,创建各个实例的构造函数与指向的共享内容的原型对象相互关联。


原型模式的执行流程是:

如果原型中属性有与实例属性相同的,那么一个对象访问这个同名的属性的时候,先是查找实例对象空间中是否有这个属性,如果有就调用。如果没有就去原型空间中去查找。

但是如果的确出现了同名属性。那么如何访问原型中的属性呢?那么可以先删除实例中的这个同名属性,然后就可以访问到这个同名的原型中的属性。

可以改变原型属性的值,直接XX.prototype.xx=新的值,即可。这个原理是覆盖了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值