gpt4 book ai didi

javascript - 将原型(prototype)方法的引用作为字典放置在原型(prototype)对象中

转载 作者:行者123 更新时间:2023-11-28 07:27:01 25 4
gpt4 key购买 nike

在我的小脑袋里,我无法解释如何正确引用对象原型(prototype)中的方法:

function A(){}
A.prototype.action = function(){}
A.prototype.dict = { action: this.action } // Mistake here.
var a = new A();
a.dict.action(); // -> undefined, but I expect a call of 'A.prototype.action' or other function if I override it in 'a'

最佳答案

您还没有真正解释为什么需要此功能,但以下内容应该可以帮助您避免所看到的错误。这是否是一个好的做法,我留给你去研究。

function A() {
var self = this;
this.dict = {
action: function() {
// by default, A.dict.action calls A.action
return self.action();
}
};
}

// Define A.action
A.prototype.action = function() {
console.log('prototype');
};

// Let's test it out
var a = new A();
a.dict.action(); // prints 'prototype'

// Override it on instance a
a.dict.action = function() {
console.log('overridden');
};
a.dict.action(); // prints 'overridden'

// Let's create a new instance of A: b
var b = new A();
b.dict.action(); // prints 'prototpye'

关于javascript - 将原型(prototype)方法的引用作为字典放置在原型(prototype)对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29538540/

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