Javascript 如何从原型链访问被自己的属性遮挡的属性?

Javascript 如何从原型链访问被自己的属性遮挡的属性?,javascript,inheritance,Javascript,Inheritance,让我们创建一个从另一个匿名对象继承的对象: var obj = Object.create({ func: function () { alert('Inherited method'); } }); 现在,obj从该匿名对象继承了func方法(obj的原型链接指向该匿名对象) 但是,如果我们在obj本身上分配func属性,继承的func属性将被隐藏: obj.func = function () { alert('Own method'); }; obj.func(); // al

让我们创建一个从另一个匿名对象继承的对象:

var obj = Object.create({
    func: function () { alert('Inherited method'); }
});
现在,
obj
从该匿名对象继承了
func
方法(
obj
的原型链接指向该匿名对象)

但是,如果我们在
obj
本身上分配
func
属性,继承的
func
属性将被隐藏:

obj.func = function () { alert('Own method'); };

obj.func(); // alerts 'Own method'
现场演示:

现在,如果我们想调用隐藏的
func
方法(警告
'Inherited method'
),有什么好方法

我已经想出了一个解决办法--但这有点像黑客

Object.getPrototypeOf(obj).func();
将确保执行继承的函数

在较旧的浏览器(上面是ES5)中,您可以使用

obj.__proto__.func();
但这是不赞成的


啊,是的。。。ES5来拯救这一天
:)
很遗憾,他们没有使用类似于
obj.proto().func()
的方法。那会更方便。。。
obj.__proto__.func();