gpt4 book ai didi

javascript - 如何在包含函数的方法中使用类变量?

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

假设我有这段代码:

MyClass = {

classVar1: 'Teddy Bear',
classVar2: 'Boogy Man',

firstMethod: function() {
console.log('I love my' + this.classVar1); // works

setTimeout(function() {
console.log('But I hate the ' + this.classVar2); // does not work
}, 2000);

someElement.addEventListener('click', function() {
console.log('I also hate the ' + this.classVar2); // also does not work
});

}

};

MyClass.firstMethod();

因为 firstMethod 内部有一个嵌套函数,所以我无法访问第二个类变量。我该如何解决这个问题?

最佳答案

您可以使用bind强制 this 值正确:

setTimeout((function() {
console.log('But I hate the ' + this.classVar2);
}).bind(this), 2000);

或者,您可以只捕获变量中的原始 this 值:

var that = this;
setTimeout(function() {
console.log('But I hate the ' + that.classVar2);
}, 2000);

关于javascript - 如何在包含函数的方法中使用类变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27553281/

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