gpt4 book ai didi

javascript - 为什么我不能在我的对象字面量中访问 this.property?

转载 作者:行者123 更新时间:2023-11-30 13:22:44 26 4
gpt4 key购买 nike

我刚刚将我的代码重组为对象并使用 this 关键字,我遇到了这个问题,设置 prop 有效,但是当第二个方法触发时,myProp 未定义.我注意到如果我使用 myObj 来设置和获取而不是这个它工作正常。这里有什么区别?我究竟做错了什么?我虽然这是指只有一个由对象文字自动实例化的实例。

var myObj = {
SetProp: function (id) {
this.myProp = "abc";
Ajax.GetJSONAfterStandardLogic(Utility.PrefixURL("/ajax/mymethod"), this.SetPropSuccess);
},
SetPropSuccess: function (response) {
console.log("test " + this.myProp);
}
}

最佳答案

可能是因为当您调用这些函数时,this 不是对象。 this 是调用函数的绑定(bind)。

多一点代码来演示如何调用该函数会很有用,但您可以使用以下代码使其工作:

myObj.SetProp.call(myObj, id)

这将 myObj 绑定(bind)为 this,用于 SetProp 函数调用。

如果您将 console.log(this) 放入其中任何一个函数中,您可能会发现 this 不是您所期望的。

关于javascript - 为什么我不能在我的对象字面量中访问 this.property?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9626570/

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