【发布时间】:2015-03-07 02:17:14
【问题描述】:
我现在使用 Traceur Compiler 来获得 ES6 功能的优势。
我想从 ES5 中实现这些东西:
function Animal() {
var self = this,
sayHi;
sayHi = function() {
self.hi();
};
this.hi = function() {/* ... */}
}
目前 traceur 不支持 private 和 public 关键字 (from harmony)。并且 ES6 类语法不允许在类主体中使用简单的var(或let)语句。
我找到的唯一方法是在类声明之前模拟私有。比如:
var sayHi = function() {
// ... do stuff
};
class Animal {
...
总比没有好,但正如预期的那样,如果没有 apply-ing 或 bind-ing 每次都不能将正确的 this 传递给私有方法。
那么,有没有可能在兼容 Traceur 编译器的 ES6 类中使用私有数据?
【问题讨论】:
-
你考虑过6to5吗?我更喜欢它而不是跟踪器。我没有用过这个特别的东西,但是check out this snippet
-
@Sampsa 这是一个很好的工具,但我在你的 sn-p 中找不到任何关于双冒号(::) 语法的信息。是来自规范还是草案?
-
实际上,这个问题并不完全重复,因为这个问题是关于私有方法的,而引用的问题是关于私有属性/字段的。
-
现在有一个私钥是
#。见:github.com/tc39/proposal-class-fields
标签: javascript class ecmascript-5 ecmascript-6 traceur