gpt4 book ai didi

Javascript 类说明

转载 作者:行者123 更新时间:2023-12-02 17:50:04 24 4
gpt4 key购买 nike

请仔细阅读代码

function Item()
{
this.state = 0;
}

Item.prototype.SendRequest = function()
{
//some request callback returns and calls GotResult
var that = this;
{
that.GotResult();//used 'that' because its inside another block
}
}

Item.prototype.GotResult = function()
{
//add to local db with callback which calls AddedToLocalDb
var that = this;
// Here is where the problem is
{
that.AddedToLocalDb();//..... ERROR
}
}

Item.prototype.AddedToLocalDb = function()
{
}

在“this.AddedToLocalDb()”上,我得到它的未定义。这是为什么?有任何想法吗?在该 block 上“this”变量未定义。我是否犯了一个错误或者范围有问题。任何帮助将不胜感激。

最佳答案

这很可能是回调函数的问题,并且在调用回调函数时丢失了 this 值。但为了确定,您必须显示涉及回调的实际代码。我们不仅需要查看方法定义,还需要查看使用这些方法导致问题的实际代码。

我怀疑这是您调用并传递 GotResult 的东西。如果这个猜测是正确的,那么您可以传递 this.GotResult.bind(this) 而不是仅仅传递 this.GotResult ,它可能会解决您的问题。

这种类型的问题有时可以使用 var that = this 技术来解决,但这仅适用于在同一作用域中使用本地函数,而不适用于在同级作用域中定义的方法定义。

关于Javascript 类说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21449838/

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