我想使用c中的javascript构建一个类,主要问题是private
属性。
var tree = {
private_var: 5,
getPrivate:function(){
return this.private_var;
}
};
console.log(tree.private_var);//5 this line want to return unaccessible
console.log(tree.getPrivate());//5
所以我想检测tree.private_var
的访问权限并返回unaccessible
,this.private_var
返回5
。
我的问题是:有没有办法在javascript中设置私有属性?
class Countdown {
constructor(counter, action) {
this._counter = counter;
this._action = action;
}
dec() {
if (this._counter < 1) return;
this._counter--;
if (this._counter === 0) {
this._action();
}
}
}
CountDown a;
a._counter
无法访问?
但是
答案 0 :(得分:1)
将tree
定义为函数而不是JavaScript对象,通过var
关键字在函数中定义私有变量,通过this.
关键字定义公共获取函数,并使用以下方法创建新实例功能
var Tree = function(){
var private_var = 5;
this.getPrivate = function(){
return private_var;
}
}
var test = new Tree();
test.private_var; //return undefined
test.getPrivate(); //return 5
在ES6中,您可以这样做,但IE 不支持所以我不推荐
class Tree{
constructor(){
var private_var =5;
this.getPrivate = function(){ return private_var }
}
}
var test = new Tree();
test.private_var; //return undefined
test.getPrivate(); //return 5