与导出默认值一起使用时,"=>"在javascript中的含义是什么?

KAD*_*KAD 5 javascript angularjs ecmascript-6

我正在分析angular-file-upload插件的一些角度js源代码,我在尝试理解一些代码时遇到了一些问题.

我知道这export是新ES6标准的一部分,它用于从给定文件(或模块)导出函数和对象.

但是下面的语法有点奇怪我:

let {
    copy,
    extend,
    forEach,
    isObject,
    isNumber,
    isDefined,
    isArray,
    element
    } = angular;


    export default (fileUploaderOptions, $rootScope, $http, $window, 
                      FileLikeObject, FileItem) => {


        let {
            File,
            FormData
            } = $window;


        class FileUploader { 

          // class implemention.... 
        }

        return FileUploader;
    }
Run Code Online (Sandbox Code Playgroud)

=>在本声明中,运算符的用途是什么?

Eth*_*own 16

这是一个箭头功能(或胖箭头功能):

(a, b, c) => { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

(几乎)相当于:

function(a, b, c) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

箭头函数和声明的函数之间的唯一区别function是它this在箭头函数中具有词法绑定,而不是在常规函数中混淆的混合morass.

  • 还有另外一件事.如果你做`(a,b,c)=> a + b + c`它相当于`function(a,b,c){return a + b + c; }`.不使用大括号时,如果只有一个命令,则返回结果. (5认同)