gpt4 book ai didi

javascript - 如何在嵌套函数中保留 'this' 上下文

转载 作者:行者123 更新时间:2023-11-28 03:55:44 51 4
gpt4 key购买 nike

我需要在内部函数oninit 中访问我的对象原型(prototype)函数。下面的代码确实有效,但我需要的是在 init 函数中具有与 self 相同的上下文,这样我就可以调用原型(prototype)函数,例如 this.loadData

请帮忙。

define([
'require',
'lodash-compat',
'BaseWidget'
],
function (require, _, BaseWidget) {

var Widget = function (options) {
this.set('url', '/some/endpoint/url');
var self = this;


_.assign(options, {
oninit: function () {
self.loadData.call(this);
},
oncomplete: function () {
//do something here
}
});
self.ractive = new BaseWidget(options);
};

Widget.prototype = {
loadData: function () {
var url = this.get('url');
// my async request
}
};

return {
initRactiveWidget: function (options) {
return new Widget(options);
}
};

});

最佳答案

尝试将 this 直接绑定(bind)到该函数。更多关于此https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind

oninit: function () {
this.loadData();
}.bind(this)

关于javascript - 如何在嵌套函数中保留 'this' 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47563223/

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