我现在使用Traceur编译器来利用ES6特性。
我想从ES5实现这个东西:
function Animal() {
var self = this,
sayHi;
sayHi = function() {
self.hi();
};
this.hi = function() {/* ... */}
}
目前,traceur不支持private
和public
关键字(来源于harmony)。而ES6类语法不允许在类体中使用简单的var
(或let
)语句。
我找到的唯一方法是在类声明之前模拟私有方法。像这样:
var sayHi = function() {
// ... do stuff
};
class Animal {
...
虽然好过没有,但是按照预期,如果不每次apply
或bind
正确地传递this
到私有方法中,你是无法通过的。
那么,在ES6类中有没有可能使用私有数据并兼容traceur编译器呢?
#
。详情请见:https://github.com/tc39/proposal-class-fields - chitzui