Tag: ecmascript 6

JavaScript ES6类中的私有属性

是否有可能在ES6类中创build私有属性? 这是一个例子。 我怎样才能防止访问instance.property ? class Something { constructor(){ this.property = "test"; } } var instance = new Something(); console.log(instance.property); //=> "test"

什么时候应该在ECMAScript 6中使用箭头function?

这个问题针对的是那些在即将到来的ECMAScript 6(Harmony)中已经考虑过代码风格并且已经使用过该语言的人。 有了() => {}和function () {}我们得到了两种非常类似的方式来在ES6中编写函数。 在其他语言中,lambda函数通常是匿名的,但在ECMAScript中,任何函数都可以是匿名的。 这两种types中的每一种都具有唯一的使用领域(即,当this需要显式地绑定或明确地不被绑定时)。 在这些领域之间有很多情况下,任何符号都可以做。 ES6中的箭头function至less有两个限制: 不要与new工作 修正了初始化时的范围限制 除了这两个限制外,箭头函数在理论上可以在几乎任何地方取代常规函数 在实践中使用它们的正确方法是什么? 如果使用箭头function,例如: “在任何地方工作”,即在任何地方,函数不必对thisvariables不可知,我们也不是创build一个对象。 只有“需要的地方”,即事件监听器,超时,需要绑定到某个范围 具有“短”function但不具有“长”function 仅限于不包含其他箭头function的function 我正在寻找的是在ECMAScript的未来版本中select适当的函数表示法的指南。 指导方针必须清楚,以便可以教给团队的开发人员,并保持一致,以便不需要不断地从一个函数表示法到另一个函数表示法的重构。

bower init – amd,es6,globals和node之间的区别

我正在创build我的第一个Bower组件。 在运行bower init ,脚本问我“这个软件包暴露了什么types的模块? 与这些选项: AMD ES6 全局 节点 这些选项有什么区别?

Webpack babel 6 ES6装饰器

我有一个使用webpack作为我的捆绑软件在ES6中编写的项目。 大部分的编译工作正常,但是当我尝试在任何地方包含装饰器时,我得到这个错误: Decorators are not supported yet in 6.x pending proposal update. 我查看了babel的问题跟踪器,并没有find任何东西,所以我假设我用错了。 我的webpackconfiguration(相关位): loaders: [ { loader: 'babel', exclude: /node_modules/, include: path.join(__dirname, 'src'), test: /\.jsx?$/, query: { plugins: ['transform-runtime'], presets: ['es2015', 'stage-0', 'react'] } } ] 我没有任何其他问题,箭头function,解构所有工作正常,这是唯一不起作用。 我知道我总是可以降级到babel 5.8,但是如果有什么方法可以在当前版本(v6.2.0)中使用,它将会有所帮助。

javascript es6数组function“传播运算符”

我在示例代码之一中想到了这一点,我完全迷失了。 const addCounter = (list) => { return […list, 0]; // This is the bit i am lost i now about […list, 0] } 显然上面是等于下面的。 const addCounter = (list) => { return list.concat([0]); } 任何build议或解释非常感谢。

ES6 Promise.all()error handling – 是.settle()需要?

假设我有一个Promise.all()来处理两个promise。 如果一个承诺产生一个错误,但另一个承诺,我希望能够处理Promise.all()已经解决后的情况的基础上的错误。 ES6承诺错过了解决方法,我假设有一个很好的理由。 但是我不禁想到.settle()方法会让这个问题更容易。 我是以这种错误的方式去做的,还是用一种解决方法扩展ES6的承诺是正确的事情呢? 我想如何使用.settle()一个例子: Promise.all([Action1,Action2]) .settle(function(arrayOfSettledValues) //if 1 failed but not 2, handle //if 2 failed but not 1, handle //etc…. )

ES6迭代类方法

鉴于这个class级; 我将如何遍历它包含的方法? class Animal { constructor(type){ this.animalType = type; } getAnimalType(){ console.log('this.animalType: ', this.animalType ); } } let cat = window.cat = new Animal('cat') 我所尝试的是以下没有成功: for (var each in Object.getPrototypeOf(cat) ){ console.log(each); }

ES6 Arrow函数中有关`arguments`的官方信息?

(() => console.log(arguments))(1,2,3); // Chrome, FF, Node give "1,2,3" // Babel gives "arguments is not defined" from parent scope 根据Babel(以及我可以告诉TC39的初步build议),这是“无效的”,因为箭头函数应该使用它们的父范围作为参数。 我唯一能find的与此相矛盾的信息是一个单一的评论,说这被TC39拒绝了,但我找不到任何东西来支持它。 只是在这里寻找官方文档。

在循环中使用对象

为什么不可以使用循环中的对象? 或者这是一个浏览器错误? 这段代码在Chrome 42中不起作用,说undefined不是一个函数: test = { first: "one"} for(var item of test) { console.log(item) }

我可以使用ES6的箭头函数语法与发电机? (箭头符号)

即我如何expression这一点: function *(next) {} 与箭头。 我已经尝试了所有我能想到的组合,而且我也找不到任何文档。 (目前使用节点v0.11.14)