function test1() {
this.name = 'test1';
var that = this;
function test2() {
this.name = 'test2';
console.log(that.name);
}
test2();
}
test1();
执行时,我希望控制台注销 test1
。为什么我得到的是 test2
?我希望 that
变量包含对 test1
函数的引用。
最佳答案
你的变量 that 成为一个对象引用,因为你为它分配了关键字 this 。这意味着变量 that 将是一个对象,并且它将引用 this(即当前对象)。
此外,变量that 不是值类型。它是一个对象。
有关这方面的更多信息,请搜索“值类型与引用类型”。
希望这对您有所帮助。
关于javascript - 变量不持有对 `this` 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50548432/