我已经在尝试使用ES6一段时间了,但是我遇到了一个小问题。
我真的很喜欢使用箭头功能,只要有可能,我都会使用它们。
但是,看来您无法绑定它们!
这是函数:
var f = () => console.log(this);
这是我要将功能绑定到的对象:
var o = {'a': 42};
这就是我绑定的f
方式o
:
var fBound = f.bind(o);
然后我可以打电话给fBound
:
fBound();
哪个将输出此(o
对象):
{'a': 42}
凉!可爱!除非它不起作用。而不是输出o
对象,而是输出window
对象。
因此,我想知道:您可以绑定箭头功能吗?(如果是这样,如何?)
我已经在Google Chrome 48和Firefox 43中测试了上面的代码,结果是相同的。
问题内容: 我们都知道我们需要在React中绑定函数以使其起作用。我知道为什么我们需要绑定它。 但是我不确定为什么我们不需要绑定箭头功能。 示例:使用箭头功能(无需绑定) }; 现在,使用功能(需要绑定) }; 我不是在问为什么我们需要绑定功能。我只想知道为什么箭头功能不需要绑定。 谢谢。 问题答案: 仅仅因为arrow函数的上下文中没有以下内容: 这个 论点 超 新目标 所以,当你引用此箭头功能
问题内容: 如何在Javascript和/或jQuery中将功能绑定到左右箭头键?我看了一下jQuery的js-hotkey插件(包装了内置的bind函数以添加一个参数来识别特定的键),但是它似乎不支持箭头键。 问题答案: $(document).keydown(function(e) { switch(e.which) { case 37: // left break; 将箭头键的自定义代码放在
问题内容: 我在几个地方读到,主要的区别是“ 在箭头函数中按词法绑定”。一切都很好,但是我实际上不知道那意味着什么。 我知道这意味着它在定义函数主体的大括号范围内是唯一的,但是我实际上无法告诉您以下代码的输出,因为我不知道所指的是什么,除非它指的是胖箭头函数本身…。似乎没有用。 问题答案: 箭头函数捕获封闭上下文的值 因此,要直接回答您的问题,箭头函数内部的值将与分配箭头函数之前的值相同。
问题内容: 我知道上面的箭头功能等效于: 但是我对以下内容有些困惑 为什么函数参数用大括号括起来,而函数主体仅用括号括起来? 问题答案: ES6的一些语法糖元素在这里起作用: 参数解构 :该函数实际上使用一个对象,但是在执行该函数之前,将其唯一的对象参数解构为三个变量。基本上,如果传递给函数的参数称为obj,则为onClick变量分配obj.onClick的值,并与其他命名的分解变量相同。 简洁的
问题内容: Node.js是否已经支持=>函数关键字别名?如果是,请从哪个版本开始?如何启用此语言扩展? 成为 问题答案: 简而言之:是的,自版本4.4.5起,Node.js中就很好地支持箭头功能。 完全正确的支持从版本6开始。最初的支持是从v0.12开始引入的,但是它非常不完整,默认情况下处于禁用状态,直到v4.0变得更好为止。
问题内容: 这个问题与使用React时类似。是否最好在构造函数中使用胖箭头函数或绑定函数?但是有点不同。您可以将函数绑定到构造函数中,或者仅在构造函数中应用箭头函数。请注意,我只能在项目中使用ES6语法。 1。 2。 这两种方式的优缺点是什么?谢谢。 问题答案: 由于某些原因,选项1通常更可取。 原型方法更易于扩展。子类可以覆盖或扩展与 当实例属性 或ES.next class字段 代替使用,调用