我来自PHP / Ruby背景,因此我仍在努力解决JavaScript用于其OOP版本的奇怪逻辑。
我的问题是,为什么不能在ES6类的范围内声明变量,而不必像在全局变量中那样将其声明在方法内部或类外部?
// The below works
// var example = [];
class Example {
var example = []; // SyntaxError: Unexpected identifier
constructor(value) {
this.value = value;
example.push(this.value);
}
get values() {
return example;
}
}
list = new Example('shoes');
console.log(list.values);
我觉得这是对隐私的严重限制,是否有任何黑客手段可以让我要求在其类范围内实现?还是我还缺少其他东西?