对箭头功能的理解es6
Understanding of arrow functions es6
我正在努力理解es6的新箭头函数语法,以及它与我所知道的内容之间的关系。
我的理解是箭头功能有
- 没有名字
- 无参数对象
- 没有发电机的能力
- 词汇这个
那么,只要你不使用arguments对象,认为它是用于箭头的,并且不使用箭头作为生成器,以下概念正确吗
function () {}.bind(this); // synonym for () => {}; given the contraints above ???
我的主要问题是。我是否遗漏了箭头函数的一些基本内容
这基本上是正确的,但说Arrow函数有"no"arguments对象可能太令人困惑了,因为这可能意味着它是未定义的。他们不做的是在自己内部或为自己重新定义该关键字,因此它保持定义为词汇范围中已经存在的任何关键字:
(function test(){
let test2 = () => console.log(this,arguments);
test2();
}).bind({heya:true})(4,5);
这将记录:"{heya:true},[4,5]";为什么?因为arguments对象和this上下文在Arrow函数的内部保持不变:外部/词法上下文没有改变。
此外,虽然Arrow函数本身没有定义函数名称,但您可以将其指定给一个名称,然后在Arrow函数的主体中使用该名称,就像这个currying函数一样:
var curry = (f, ...args) => {
if (f.length <= args.length){
return f(...args);
}
return (...more) => curry(f, ...args, ...more);
};
相关文章:
- 如何在ASP.Net中使用ES6功能
- 无参数的ES6箭头功能
- 如何在启用ES6功能的情况下运行Node.js应用程序
- jslint --edition=最新的意外ES6功能.常量
- CoffeeScript 是否支持 ES6 中的生成器功能?
- ES6导出默认功能
- 导入功能 es6 Javascript
- Angular 2.0 :Typescript 是否支持 ES6 的所有功能
- 对箭头功能的理解es6
- ES6箭头功能
- 在所有浏览器支持下使用ES6功能
- D3.js事件侦听器无法访问“”;这个“;当使用ES6箭头功能时
- 在 Expressjs、Node 中使用 ES6 功能
- 这是ES6的新功能吗
- ES6对象.forOwn循环遍历对象键的功能
- ES6模块语法用于多个"static"功能
- ES6导出覆盖功能
- ES6导出和导入功能
- ES6地图功能
- 你能选择哪些ES6功能可以用Babel移植吗