我喜欢新的箭头()=>{}
语法,我想在任何可能的地方使用它。我知道箭头函数指向外部这个上下文。是否有像正常功能一样使用箭头功能的方法?我只需要将this
点指向箭头函数的内部。
我需要制作这段代码:
let foo = () => {
// "this" keyword should point to the inner of that function, not window object
}
就像这段代码一样:
function foo() {
// "this" keyword points to the inner of that class/object/function/whatever-it-calls-fix-me-if-am-i-wrong
}
是否可以实现,或者我需要坚持使用function
关键字?
更具体地说,我需要使用this
来使其在Angular中使用controllerAs语法,但这不是重点。这是一个比AngularJS问题更具JS问题。
答案 0 :(得分:1)
有没有办法像正常功能一样使用箭头功能?我只需要将这个点指向箭头函数的内部。
合理地,没有。实际上,只是没有,期间。 :-)使用function
函数。
它无法工作,因为箭头功能关闭this
。这意味着调用者无法在几种情况下设置this
(例如原型上的函数,设置this
的jQuery等库的回调等)。
答案 1 :(得分:-1)
如何使用箭头功能与使用此功能的库
let _self = this;
something.each(function() {
console.log(_self);
console.log(this);
});
参考:https://basarat.gitbooks.io/typescript/content/docs/arrow-functions.html