草庐IT

es6-features

全部标签

javascript - 如何克隆 javascript ES6 类实例

如何使用ES6克隆Javascript类实例。我对基于jquery或$extend的解决方案不感兴趣。我已经看到关于对象克隆的相当老的讨论表明这个问题非常复杂,但是ES6提供了一个非常简单的解决方案-我将把它放在下面,看看人们是否认为它令人满意。编辑:有人建议我的问题是重复的;我看到了那个答案,但它已有7年历史,并且涉及使用ES6之前的js的非常复杂的答案。我建议我的问题(允许ES6)有一个非常简单的解决方案。 最佳答案 这很复杂;我尝试了很多!最后,这个单行代码适用于我的自定义ES6类实例:letclone=Object.assi

javascript - async/await 和 ES6 生成器之间的区别

我刚刚阅读了这篇精彩的文章«Generators»,它清楚地突出了这个函数,它是一个用于处理生成器函数的辅助函数:functionasync(makeGenerator){returnfunction(){vargenerator=makeGenerator.apply(this,arguments);functionhandle(result){//result=>{done:[Boolean],value:[Object]}if(result.done)returnPromise.resolve(result.value);returnPromise.resolve(result.

javascript - 带有 require 的 Node.js ES6 类

到目前为止,我已经在node.js中创建了类和模块,方法如下:varfs=require('fs');varanimalModule=(function(){/***Constructorinitializeobject*@constructor*/varAnimal=function(name){this.name=name;};Animal.prototype.print=function(){console.log('Nameis:'+this.name);};return{Animal:Animal}}());module.exports=animalModule;现在使用ES

javascript - ES2015 "import"在带有 --harmony_modules 选项的 Node v6.0.0 中不工作

我正在使用Nodev6.0.0并想使用ES2016(ES6)。但是我意识到“导入”语法不起作用。“导入”不是在ES2015中编写模块化代码的基础吗?我也尝试使用--harmony_modules选项运行Node,但仍然遇到有关“导入”的相同错误。这是代码。没有“导入”的工作代码:'usestrict';letsum=0;classNumber{addNumber(num1,num2){returnnum1+num2;}}letnumberObj=newNumber();sum=numberObj.addNumber(1,2);console.log("sumoftwonumber1an

javascript - 错误 : Couldn't find preset "es2015" relative to directory "/Users/username"

尝试使用gulp-babel时出现以下错误:Error:Couldn'tfindpreset"es2015"relativetodirectory"/Users/username"我在全局和本地安装了es2015预设,所以不明白为什么会出现问题。下面是我的gulp设置和package.json。varbabel=require('gulp-babel');vares2015=require('babel-preset-es2015');gulp.task('babel',function(){returngulp.src('./app/main.js').pipe(babel({pre

javascript - 如何在 Node 4 中正确导出 ES6 类?

我在一个模块中定义了一个类:"usestrict";varAspectTypeModule=function(){};module.exports=AspectTypeModule;varAspectType=classAspectType{//...};module.export.AspectType=AspectType;但我收到以下错误消息:TypeError:Cannotsetproperty'AspectType'ofundefinedatObject.(...\AspectType.js:30:26)atModule._compile(module.js:434:26)..

javascript - node.js中的ES6变量导入名称?

是否可以在使用ES6导入时将某些内容导入到提供变量名的模块中?即我想根据配置中提供的值在运行时导入一些模块:importsomethingfrom'./utils/'+variableName; 最佳答案 不使用import语句。import和export的定义方式使得它们可以静态分析,因此它们不能依赖于运行时信息。您正在寻找loaderAPI(polyfill),但我对规范的状态有点不清楚:System.import('./utils/'+variableName).then(function(m){console.log(m);

javascript - 有没有办法在 ES6/Node 4 中创建接口(interface)?

ES6在Node4中完全可用。我想知道它是否包含接口(interface)的概念来定义方法协定,如MyClassimplementsMyInterface。我在谷歌上找不到很多东西,但也许有一个不错的技巧或解决方法。 最佳答案 接口(interface)不是ES6的一部分,但类是。如果你真的需要它们,你应该看看TypeScript其中supportthem. 关于javascript-有没有办法在ES6/Node4中创建接口(interface)?,我们在StackOverflow上找到

javascript - 如何将用 ES6 编写的模块发布到 NPM?

我正要向NPM发布一个模块,当时我考虑在ES6中重写它,既要面向future,又要学习ES6。我使用Babel转译为ES5,并运行测试。但我不确定如何继续:我是否转译并将生成的/out文件夹发布到NPM?我是否将结果文件夹包含在我的Github存储库中?或者我是否维护2个存储库,一个带有ES6代码+用于Github的gulp脚本,另一个带有转译结果+用于NPM的测试?简而言之:我需要采取哪些步骤才能将一个用ES6编写的模块发布到NPM,同时仍然允许人们浏览/fork原始代码? 最佳答案 目前我看到的模式是将es6文件保存在src目录

javascript - ES6 立即调用箭头函数

为什么这在Node.js控制台中有效(在4.1.1和5.3.0中测试),但在浏览器中无效(在Chrome中测试)?这个代码块应该创建并调用一个记录Ok的匿名函数。()=>{console.log('Ok');}()此外,虽然上述在Node.js中有效,但这不起作用:n=>{console.log('Ok');}()也不是这样:(n)=>{console.log('Ok');}()奇怪的是,当添加参数时,它实际上在立即调用部分抛出了SyntaxError。 最佳答案 您需要将其设为函数表达式,而不是函数定义,后者不需要名称并使其成为有