gpt4 book ai didi

javascript - 如何访问原型(prototype)链中被自身属性遮蔽的属性?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:06:17 25 4
gpt4 key购买 nike

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

var obj = Object.create({
func: function () { alert('Inherited method'); }
});

现在 obj 从那个匿名对象继承了 func 方法(obj 的原型(prototype)链接指向那个匿名对象)。

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' 的方法),执行此操作的好方法是什么?

我已经想出了一个解决方案 - see here - 但它有点像黑客。

最佳答案

Object.getPrototypeOf(obj).func();

将确保继承的函数得到执行。

在旧版浏览器中(以上为ES5),可以使用

obj.__proto__.func();

但这已被弃用。

http://jsfiddle.net/pimvdb/PLxHB/5/

关于javascript - 如何访问原型(prototype)链中被自身属性遮蔽的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7132318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com