gpt4 book ai didi

javascript - 'this' 在下一个范围内未定义

转载 作者:行者123 更新时间:2023-12-03 06:53:02 26 4
gpt4 key购买 nike

我的问题就像标题一样简单。我有一些代码可以进行 AJAX 调用。此代码类似于此 ( JSFiddle ):

function Test() {
this.name = "U don't wanna know my name..";
}
Test.prototype.ajax = function() {
$.ajax("url/path", data, function() {
alert(this.name);
});
};

var test = new Test();
test.ajax();

在本例中this未定义。我可以将以下代码放在 ajax 调用之前并使用它来代替 this :

var diz = this;

我想知道是否还有另一种使用 this 的方法无需为其创建新变量。

最佳答案

In this case this is undefined.

this.name 未定义(假设您是这个意思),因为 this 特定于函数的上下文。在该 ajax 的回调处理程序中 this 不再属于 Test,它属于该回调函数。

was wondering if there's another way of using this without creating a new variable for it.

我认为,如果不保存对父级 this(测试的 this)的引用,您就无法访问属于更多子级的 this来自函数作用域的全局作用域。

关于javascript - 'this' 在下一个范围内未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37415192/

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