const func = (() => {
const init = (data) => {
organizeData(data);
return this;
}
const otherFunc = () => {
//Do something else
}
return {
init:init,
otherFunc: otherFunc
}
})();
func.init(data).otherFunc()
我的init函数中存在“this”的问题。它指的是窗口而不是我的func对象。
它返回func.init(data).otherFunc()不是函数,因为它指向窗口而不是我的函数
提前致谢
答案 0 :(得分:0)
箭头函数会将this
的上下文分配到已定义的相同上下文中,而不是在执行时。
这意味着示例中的第一行将this
绑定到全局命名空间,因为它是在全局范围内定义的。
如果您希望在运行时动态绑定某个函数,则必须使用旧的function () {}
版本,而不是() => {}
。
一个好的经验法则是当你在已知的上下文中时才使用箭头函数。