gpt4 book ai didi

javascript - 类似类的行为 Javascript

转载 作者:行者123 更新时间:2023-11-28 11:12:33 24 4
gpt4 key购买 nike

所以我有这个 Javascript 函数(类):

function Test() {
this.a = function() { return 'hello'; }
this.b = function() { alert(this.a()); }
window.onload = this.b;
}
test = new Test();

该代码不起作用,因为窗口加载时的函数 this.b 成为全局函数(在测试函数/类之外),而 this.a 不存在。

类似这样的事情:

function Test() {
this.a = function() { return 'hello'; }
this.b = function() { alert(test.a()); } // changed this to test
window.onload = this.b;
}
test = new Test();

确实有效,但它假设我知道哪个变量保存测试函数/类,这会失去创建多个类的功能。

维护这种方法(在函数/类中使用 this 指针)并获得想要的结果的最佳解决方案是什么?

最佳答案

实际上,它与范围无关,而与上下文有关。

请注意,当调用事件处理程序时,this 将设置为事件绑定(bind)到的任何元素。在本例中,thiswindow

尝试这样的事情:

function Test() {
var self = this;
self.a = function() {return 'hello';};
self.b = function() {alert(self.a());};
window.onload = self.b;
}

通过将上下文“保存”到变量self,可以避免上下文问题。

关于javascript - 类似类的行为 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21477622/

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