Tag: traceur

使用jQuery $(this)和ES6箭头函数(lexical this binding)

使用ES6的箭头函数与词法this绑定是伟大的。 不过,我刚才遇到一个问题,使用它与一个典型的jQuery点击绑定: class Game { foo() { self = this; this._pads.on('click', function() { if (self.go) { $(this).addClass('active'); } }); } } 改为使用箭头function: class Game { foo() { this._pads.on('click', () => { if (this.go) { $(this).addClass('active'); } }); } } 然后$(this)被转换成ES5(self = this)types的闭包。 是否让Traceur忽略“$(this)”来进行词法绑定?

如何使用ES6模块模拟unit testing的依赖关系

我试图摆弄Ecmascript 6模块使用webpack + traceur transpile到ES5 CommonJS,但我有麻烦成功地unit testing他们。 我尝试使用Jest + traceur预处理器,但automocking和依赖项名称似乎变得棘手,加上我似乎无法得到sourceMaps与Jest和节点检查器debugging工作。 unit testingES6模块有更好的框架吗?

如何用Traceur实现ES6类中的私有方法

我现在使用Traceur编译器来使用ES6function。 我想从ES5实现这个东西: function Animal() { var self = this, sayHi; sayHi = function() { self.hi(); }; this.hi = function() {/* … */} } 目前traceur不支持private和public关键字( 来自和谐 )。 而ES6类语法不允许在类体中使用简单的var (或let )语句。 我发现的唯一方法是在类声明之前模拟私有。 就像是: var sayHi = function() { // … do stuff }; class Animal { … 如果不出意料的话,不如预期的那样,如果没有每次apply或bind它,都不能将其正确地传递给私有方法。 那么,有没有可能在与traceur编译器兼容的ES6类中使用私有数据呢?

获取ES6类实例的类名

是否有任何“和谐”的方法来从ES6类实例获得类名? 以外 someClassInstance.constructor.name 目前我正指望Traceur的实施。 而且Babel似乎有一个用于Function.name polyfill,而Traceur则没有。 综上所述:在ES6 / ES2015 / Harmony中没有其他方法,ES中没有预期的ATM。 它可能为非服务器端应用程序提供有用的模式,但在浏览器/桌面/移动应用程序中是不需要的。 Babel 使用core-js j来填充Function.name ,它应该适当地为Traceur和TypeScript应用程序手动加载。