ES6 的类不支持受保护成员,那么有什么奇巧淫技可以达到相同的效果吗?
"use strict";
var property = Symbol();
class Something {
constructor(){
this[property] = "hello";
}
test(){
console.log(this[property]);
}
}
var instance = new Something();
console.log(instance.property); //undefined
instance.test() //hello
这个方案可以实现,
参考:http://stackoverflow.com/questions/22156326/private-properties-in-javascript-es6-classes
https://tc39.github.io/ecma262/#sec-symbol-objects
传统方式实现就很简单了
function Point(x,y){
this.x = x;
this.y = y;
var z = this.x + this.y;
this.printZ = function(){
console.log(z);
}
}
z就是类中的私有变量
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答873 阅读✓ 已解决
6 回答1k 阅读
2 回答1.3k 阅读✓ 已解决
module foo:
module bar:
module main:
奇技淫巧版: