什么是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模块系统的一部分,在这里描述 。 该文档中还有一个有用的例子,
如果一个模块定义了一个默认导出:
module "foo" { export default function() { console.log("hello!") } }
那么可以通过省略花括号来导入该默认导出:
import foo from "foo"; foo(); // hello!
更新:从2015年2月2日起,模块系统在§15.2中定义,特别是在ES6草案规范的§15.2.3中定义了export
语法。 当然,由于它仍然是一个草案,未来这可能会改变。
当文件中只有一个导出时,可以使用export default function(){}
。 注意这个函数没有名字。 另一种方法是命名导出。
此页面详细介绍了export default
以及有关我发现非常有用的模块的其他详细信息。
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';
一点关于出口
正如名称所述,它用于从脚本文件或模块中导出函数,对象,类或expression式
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