Win*_*ter 2 javascript ecmascript-6
我找到了一个脚本示例,其中有一行代码如下所示:
fn = (arg1) => (arg2) => {
//do something with arg1 and arg2
}
Run Code Online (Sandbox Code Playgroud)
我想知道这里到底发生了什么,它看起来像一个"正常"的功能?
它看起来像两个嵌套函数,其中外部函数返回带有闭包的内部函数arg1.
var fn = function (arg1) {
return function (arg2) {
//do something with arg1 and arg2
};
};
Run Code Online (Sandbox Code Playgroud)
var fn = function (arg1) {
return function (arg2) {
return arg1 + arg2;
};
};
var add4 = fn(4),
add20 = fn(20);
console.log(add4(5)); // 9
console.log(add20(5)); // 25Run Code Online (Sandbox Code Playgroud)
箭头功能:
箭头函数表达式比一个更短的语法 功能表达 ,并且不结合自己的
this, 参数, 超,或 new.target.这些函数表达式最适合非方法函数,不能用作构造函数.
fn = (arg1) => (arg2) => {
//do something with arg1 and arg2
}
Run Code Online (Sandbox Code Playgroud)
fn 是第一个anon函数的名称,它基本上是一个返回另一个函数的函数
它大致翻译成
var fn = function(arg1){
return function(arg2){
... // do something
}
}
Run Code Online (Sandbox Code Playgroud)
注意到该this值会有所不同,因为它是一个箭头函数.
| 归档时间: |
|
| 查看次数: |
155 次 |
| 最近记录: |