gpt4 book ai didi

javascript - 在对象字面量中调用自执行函数时出现异常

转载 作者:行者123 更新时间:2023-11-30 20:36:32 26 4
gpt4 key购买 nike

我正在尝试将一个字段的值设置为一个函数,然后执行它。 this.fetchLocalStorage 不是函数 是我运行它得到的结果。

var app = {

busdata: (function(){return this.fetchLocalStorage()})(),

fetchLocalStorage: function() {
//fetching
return "fetching data...";
}

};
console.log(app.busdata);

请注意,如果不将其设为自执行函数,它就可以工作,但这意味着每次我只需要获取一次数据时都会调用该函数。

busdata: function(){return this.fetchLocalStorage()}
/* ... */
console.log(app.busdata()); //this calls the function every time :(

认为这可能是一个上下文问题,所以我尝试了一些 bindcall 但没有成功。我错过了什么吗?

最佳答案

this 仅在您调用对象的方法时绑定(bind)到对象,即 app.someMethod()。但是你在创建对象时试图调用 fetchLocalStorage(),而不是在对象的方法中,所以 this 是外部上下文,可能是全局 window 对象。

在创建对象之前,您不能引用对象的其他属性。所以在创建对象后正常调用该函数即可。

var app = {
fetchLocalStorage: function() {
//fetching
return "fetching data...";
}

};

app.busdata = app.fetchLocalStorage();

关于javascript - 在对象字面量中调用自执行函数时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49785414/

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