什么是 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 可以更容易理解?

原文由 damphat 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

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

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

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

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

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


更新: 截至 2015 年 6 月,模块系统在 §15.2 中定义,特别是 export 语法在 ECMAScript 2015 规范的 §15.2.3 中定义。

原文由 p.s.w.g 发布,翻译遵循 CC BY-SA 4.0 许可协议

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;

这可以导入并用作

应用程序.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

当使用 export default 时,这就简单多了。脚本文件只导出一件事。 立方体.js

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

并用作 App.js

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

原文由 sudo bangbang 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏