协慌网

登录 贡献 社区

什么是 JavaScript 中的 “导出默认值”?

档案: SafeString.js

// Build out our basic SafeString type
function SafeString(string) {
  this.string = string;
}

SafeString.prototype.toString = function() {
  return "" + this.string;
};

export default SafeString;

我以前从未见过export default 。是否有任何等价的东西export default ,可以更容易理解?

答案

它是 ES6 模块系统的一部分,在此进行描述。该文档中还有一个有用的示例:

如果模块定义了默认导出:

export default function() { console.log("hello!") }

那么您可以通过省略花括号来导入该默认导出:

import foo from "foo";
foo(); // hello!

更新:从 2015 年 6 月开始,模块系统在§15.2中定义,尤其是export语法在 ECMAScript 2015 规范的§15.2.3 中定义。

export default值用于从脚本文件中导出单个类,函数或基元。

导出也可以写成

export default function SafeString(string) {
  this.string = string;
}

SafeString.prototype.toString = function() {
  return "" + this.string;
};

这用于将此功能导入另一个脚本文件

app.js 中说,您可以

import SafeString from './handlebars/safe-string';

关于出口的一点

顾名思义,它用于从脚本文件或模块中导出函数,对象,类或表达式

Utiliites.js

export function cube(x) {
  return x * x * x;
}
export const foo = Math.PI + Math.SQRT2;

可以将其导入并用作

App.js

import { cube, foo } from 'Utilities';
console.log(cube(3)); // 27
console.log(foo);    // 4.555806215962888

或者

import * as utilities from 'Utilities';
console.log(utilities.cube(3)); // 27
console.log(utilities.foo);    // 4.555806215962888

使用导出默认值时,这要简单得多。脚本文件仅导出一件事。 cube.js

export default function cube(x) {
  return x * x * x;
};

并用作App.js

import Cube from 'cube';
console.log(Cube(3)); // 27

当函数没有名称时,可以使用export default function(){}文件中只能有一个默认导出。替代方法是命名出口。

本页详细介绍了export default ,以及有关模块的其他详细信息,我发现它们非常有用。