为了账号安全,请及时绑定邮箱和手机立即绑定

你能绑定箭头函数吗?

你能绑定箭头函数吗?

MYYA 2019-07-11 10:21:05
你能绑定箭头函数吗?我已经用ES6做了一段时间的实验,我只是遇到了一个小问题。我非常喜欢使用箭头函数,只要有可能,我就使用它们。然而,似乎你不能绑定他们!以下是功能:var f = () => console.log(this);下面是我希望将函数绑定到的对象:var o = {'a': 42};以下是我将如何绑定f到o:var fBound = f.bind(o);然后我就可以打电话fBound:fBound();,它将输出以下内容(o目标):{'a': 42}凉爽的!可爱的!只是它不起作用。而不是输出o对象时,它将输出window对象。所以我想知道:你能绑定箭头函数吗?(如果是,怎么做?)我在GoogleChrome 48和Firefox 43中测试了上面的代码,结果是一样的。
查看完整描述

3 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

不能“重新绑定”箭头函数。它将始终与定义它的上下文一起调用。用一个正常的函数。

ECMAScript 2015规格:

在ArrowFunction中对参数、Super、this或new.Target的任何引用都必须解析到词汇包围环境中的绑定。通常,这将是立即包围函数的函数环境。


查看完整回答
反对 回复 2019-07-11
?
aluckdog

TA贡献1847条经验 获得超7个赞

MDN:

与函数表达式相比,箭头函数表达式的语法更短,并且在词汇上绑定此值(不绑定它自己的this、参数、Super.Target或new.Target)。箭头函数总是匿名的。

这意味着您不能按需要将值绑定到它。


查看完整回答
反对 回复 2019-07-11
  • 3 回答
  • 0 关注
  • 499 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信