"=>"在javascript中,当与export default一起使用时

What does "=>" mean in javascript when used with export default?

本文关键字:quot default 一起 export javascript 当与      更新时间:2023-09-26

我正在分析angular-file-upload插件的一些angular 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;
    }

=>操作符在这个语句中的用途是什么?

这是一个箭头函数(或脂肪箭头函数):

(a, b, c) => { /* ... */ }

(几乎)等价于:

function(a, b, c) { /* ... */ }

箭头函数和用function声明的函数之间的唯一区别是this在箭头函数中具有词法绑定,而不是常规函数中绑定的混乱。

这是ES6的箭头功能。在您的例子中,它相当于:

"use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var _angular = angular;
var copy = _angular.copy;
var extend = _angular.extend;
var forEach = _angular.forEach;
var isObject = _angular.isObject;
var isNumber = _angular.isNumber;
var isDefined = _angular.isDefined;
var isArray = _angular.isArray;
var element = _angular.element;
exports["default"] = function (fileUploaderOptions, $rootScope, $http, $window, FileLikeObject, FileItem) {
    var File = $window.File;
    var FormData = $window.FormData;
    var FileUploader = function FileUploader() {
        _classCallCheck(this, FileUploader);
    };
    // class implemention....
    return FileUploader;
};
module.exports = exports["default"];

注意这是由Babel编译的