[英]How to access properties from the prototype chain that are shadowed by own properties?
让我们创建一个继承自另一个匿名对象的对象:
var obj = Object.create({
func: function () { alert('Inherited method'); }
});
现在obj
从该匿名对象继承func
方法( obj
的原型链接指向该匿名对象)。
obj.func(); // alerts 'Inherited method'
但是如果我们在obj
本身上分配一个func
属性,那么继承的func
属性将被遮蔽 :
obj.func = function () { alert('Own method'); };
obj.func(); // alerts 'Own method'
现场演示: http : //jsfiddle.net/PLxHB/
现在,如果我们想调用那个带阴影的func
方法(警告'Inherited method'
),那么这样做的好方法是什么?
我已经提出了一个解决方案 - 看到这里 - 但它有点像黑客。
Object.getPrototypeOf(obj).func();
将确保继承的函数被执行。
在旧版浏览器中(以上是ES5),您可以使用
obj.__proto__.func();
但这已被弃用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.