Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript nodejs modules.exports与ES6类_Javascript_Node.js_Ecmascript 6 - Fatal编程技术网

Javascript nodejs modules.exports与ES6类

Javascript nodejs modules.exports与ES6类,javascript,node.js,ecmascript-6,Javascript,Node.js,Ecmascript 6,我只是从ES5函数中学习ES6 有些事情让我很困惑: 比如说出口, function B(){ // Some definition } exports.modules = B(); 如果我们使用基于类的语法,这是否意味着我们根本不需要导出?如果没有,我们怎么写?您实际上什么时候需要使用导出?与使用“new”关键字调用构造函数相反?。有什么区别 个人意见: ES6让我感觉像是在用javascript编写Java代码:-\n我喜欢函数式编程,但看起来ES6是一个不错的选择。我有一部分讨厌新语法

我只是从ES5函数中学习ES6

有些事情让我很困惑:

比如说出口,

function B(){
// Some definition
}

exports.modules = B();
如果我们使用基于类的语法,这是否意味着我们根本不需要导出?如果没有,我们怎么写?您实际上什么时候需要使用导出?与使用“new”关键字调用构造函数相反?。有什么区别

个人意见:

ES6让我感觉像是在用javascript编写Java代码:-\n我喜欢函数式编程,但看起来ES6是一个不错的选择。我有一部分讨厌新语法,但另一半想尝试一下。。有人来过这里吗


请告诉我。

ES6模块导出不可变绑定 与CommonJS模块不同,ES6模块将绑定、实时连接导出到值。以下代码演示了其工作原理:

//------ lib.js ------
export let mutableValue = 3;
export function incMutableValue() {
    mutableValue++;
}

//------ main1.js ------
import { mutableValue, incMutableValue } from './lib';

// The imported value is live
console.log(mutableValue); // 3
incMutableValue();
console.log(mutableValue); // 4

// The imported value can’t be changed
mutableValue++; // TypeError
如果通过星号*导入模块对象,则会得到类似的结果:

//------ main2.js ------
import * as lib from './lib';

// The imported value is live
console.log(lib.mutableValue); // 3
lib.incMutableValue();
console.log(lib.mutableValue); // 4

// The imported value can’t be changed
lib.mutableValue++; // TypeError
看看:和

如果我们使用基于类的语法,这是否意味着我们根本不需要导出

不,那两个人完全没有关系

类语法是关于定义构造函数和原型方法的。 导出是关于使值可用于其他文件模块,特定于您正在使用的environment node.js,而不是语言。 因此,即使您从函数B切换到类B,这也不会改变模块系统的任何内容。如果您从common.js样式更改为ES6模块语法以导出您的B或新的B或其他任何东西,这不会改变B的声明

ES6让我感觉像是在用javascript编写Java代码:-\n我喜欢函数式编程,但看起来ES6是一个不错的选择


ES6类语法只是构造器和原型的糖,使读写更容易/更短。如果您对函数式编程感兴趣,并且以前没有使用构造函数,那么您也不会在ES6中使用它们。

我们在ES5中有导出。不,我们没有。您确定exports.modules不应该是module.exports吗?我假设您目前正在使用CommonJS模块系统。您是否。。。尝试你仍然需要告诉模块要输出什么。我不明白为什么我因为提出问题或表达观点而被评为-4级。我认为这是一个我可以提问或表达想法的地方!天哪!你可以提问和表达你的想法,只是不要期望每个人都喜欢你的想法或他们表达的形式。我没有投反对票,但我也没有投反对票,因为你的问题不清楚我们如何写——写什么?,这是不正确的导出。模块不是导出的工作方式,它的一部分没有意义。最后的bullet和R是什么?看起来好像有什么未完成或格式错误。