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

2022-08-29 22:26:56

文件:安全字符串.js

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

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

export default SafeString;

我以前从未见过。有没有等效的东西可以更容易理解?export defaultexport default


答案 1

它是ES6模块系统的一部分,如此处所述。该文档中还有一个有用的示例:

如果模块定义了缺省输出:

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

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

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

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


答案 2

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

导出也可以写为

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

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

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

应用中说.js,你可以

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

关于出口的一点点

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

实用工具.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

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

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

并用作应用程序.js

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