Tag: ecmascript 6

如何扩展function与ES6类?

ES6允许扩展特殊对象。 所以可以从函数inheritance。 这样的对象可以被称为一个函数,但是我怎样才能实现这种调用的逻辑呢? class Smth extends Function { constructor (x) { // What should be done here super(); } } (new Smth(256))() // to get 256 at this call? 任何类的方法通过this获得对类实例的引用。 但是,当它被称为一个函数, this是指window 。 当它被作为一个函数调用时,如何获得对类实例的引用? PS: 同样的问题在俄罗斯。

ES6 WeakMap的实际用途是什么?

ECMAScript 6中引入的WeakMap数据结构的实际用途是什么? 由于弱映射的关键字会强烈引用其对应的值,因此,只要其关键字仍然存在,确保插入弱映射的值不会消失,因此不能用于备注表,caching或其他任何你通常使用弱引用,弱值的地图等。 在我看来,这是: weakmap.set(key, value); 这只是一个迂回的说法: key.value = value; 我错过了哪些具体的用例?

哪些浏览器支持ECMAScript 6的导入和导出语法?

我目前正在使用MEAN Stack编写一个Web应用程序,并试图在ECMAScript 6 JavaScript中编写代码; 不过,在使用导入和导出语法时,我在Chrome和Firefox中都遇到了错误。 目前是否有任何浏览器完全支持ECMAScript 6? 请注意:我不问ECMAScript 6何时会被浏览器支持。 我在问哪些浏览器支持ECMAScript 6导入和导出语法。 请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_6_support_in_Mozilla#Features_not_yet_supported_by_Firefox

哪个ECMAScript 6function意味着严格的模式?

在ECMAScript 5(aka JavaScript)中,我可以通过在函数(或文件的顶部)添加"use strict"来触发严格的模式,但是这是不鼓励的。 我明白,在ECMAScript 6中,某些语法function将打开严格的模式,特别是class和模块(但是你这样做)。 在ECMAScript 6世界中,触发严格模式的完整列表是什么?

推迟执行ES6模板文字

我正在玩新的ES6模板文字function,我头上的第一件事是一个Javascript的String.format ,所以我去实现一个原型: String.prototype.format = function() { var self = this; arguments.forEach(function(val,idx) { self["p"+idx] = val; }); return this.toString(); }; console.log(`Hello, ${p0}. This is a ${p1}`.format("world", "test")); ES6Fiddle 但是,模板文字在传递给我的原型方法之前进行了评估。 有什么办法可以编写上面的代码来推迟结果,直到dynamic创build元素之后?

是否有可能解构到一个现有的对象? (Javascript ES6)

例如,如果我有两个对象: var foo = { x: "bar", y: "baz" } 和 var oof = {} 我想把foo的x和y值传给oof。 有没有办法做到这一点,使用es6解构语法? 也许是这样的: oof{x,y} = foo

JavaScript ES6类扩展没有超级

是否有可能在ES6中扩展一个类而不调用super方法来调用父类? 编辑:这个问题可能是误导。 是我们必须调用super()还是缺less一些东西? 例如: class Character { constructor(){ console.log('invoke character'); } } class Hero extends Character{ constructor(){ super(); // exception thrown here when not called console.log('invoke hero'); } } var hero = new Hero(); 当我没有调用派生类super()我得到一个范围问题 – > this is not defined 我用v2.3.0中的iojs –harmony来运行这个

在Node.JS中解构

这个最近的video声称,EMCAScript 6解构已经部分在Node.JS中实现。 我已经尝试了各种示例(使用v0.10.12和–harmony标志),如 var [a, b] = [1, 2]; 和 var {a: a, b: b} = {a: 1, b: 2}; 无济于事。 这张票似乎表明解构还没有在V8中得到支持。 Node.JS中的解构是否部分实现? 什么是我可以玩的代码片段?

在ES6类中声明静态常量?

我想在class实现常量,因为这是在代码中find它们的位置。 到目前为止,我一直在用静态方法实现下面的解决方法: class MyClass { static constant1() { return 33; } static constant2() { return 2; } // … } 我知道有可能摆弄原型,但是很多人反对这个。 有没有更好的方法来实现ES6类中的常量?

用Babel在ES6中扩展内置的本机

我使用Babel来扩展我的类与内置本地数组 class NewArray extends Array { first() { return this[0]; } } var a = new NewArray(1, 2, 3); console.log(a.length); // 3 console.log(a); // [ 1, 2, 3 ] console.log(a.first()); // trigger error 在a.first()中,我得到这个错误: console.log(a.first()); ^ TypeError: a.first is not a function 我应该做更多的事情来扩展一个内置的本地? 谢谢!