首页 > 代码库 > 原型属性方法访问
原型属性方法访问
对实例中属性或者方法的访问时,先从实例的对象中寻找,如果不存在则在原型中寻找。
所以:如果原型中有某个属性,在实例对象中在重写则会隐藏原型的属性访问。
function Person(){}Person.prototype.name = "Jack";Person.prototype.sayName = function(){ alert(this.name);}var p1 = new Person();alert(p1.hasownProperty("name")); //false hasownProperty方法是判断实例中是否存在此属性alert("name" in p1); //true in操作符是判断实例和原型中是否存在此属性p1.name = "Tom";alert(p1.name) // Tom 隐藏了原型的属性delete p1.name;alert(p1.name); //Jack
但是如果重写了prototype 则会破坏原有的搜索方式
比如:
Person.prototype = { name : "Jack", sayName : function (){ alert(this.name); }}var p1 = new Person();p1.sayName() //error
此时则会报错,因为原型链被破话,搜索不到原型的sayName方法了。
原型属性方法访问
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。