gpt4 book ai didi

javascript - 嵌套函数无法识别 javascript "this"关键字

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

我无法让我的嵌套函数识别“this”关键字。这是一个例子。我有一个构造函数:

function person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.changeName = changename;
}

我有另一个带有嵌套函数的函数:

function changeName (name) {
this.lastname = name;
$.post("display.php", "some_data", function(data,status) {
if (status=="success") {
alert(this.lastName); //undefined
}
}

}

最佳答案

该函数从您需要使用 .bind 或“hack”的内部函数设置此值:

function changeName (name) {

var that = this;

this.lastname = name;
$.post("display.php", "some_data", function(data,status) {
if (status=="success") {
alert(that.lastName); //undefined
}
}
}

或者使用function.protoype.bind .

function changeName (name) {

this.lastname = name;
$.post("display.php", "some_data", function(data,status) {
if (status=="success") {
alert(this.lastName); //undefined
}
}.bind(this))
}

这是一个相当不错的explanation

关于javascript - 嵌套函数无法识别 javascript "this"关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27561962/

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