Javascript 如何使用构造函数中的公共函数访问私有变量

Javascript 如何使用构造函数中的公共函数访问私有变量,javascript,variables,properties,constructor,private,Javascript,Variables,Properties,Constructor,Private,如何使用构造函数中的公共函数访问私有变量 function construct(){ var priValue1 = 0; var priValue2 = 0; var priValue3 = 0; this.getvalue = function(_input){ return this[_input]; } } construct.prototype.init = function(){ if(this.getv

如何使用构造函数中的公共函数访问私有变量

function construct(){

    var priValue1 = 0;
    var priValue2 = 0;
    var priValue3 = 0;    

    this.getvalue = function(_input){
        return this[_input];
    }

}

construct.prototype.init = function(){
    if(this.getvalue("priValue1")){
        console.log("Value 1")
    }
}

var nc = new construct();
nc.init();

无法访问私有变量

您可以将私有变量存储在对象中,并通过属性名访问它们

函数构造(){
var priVars={
1:0,
priValue2:0,
隐私3:0
};
this.getvalue=函数(\u输入){
返回priVars[_输入];
}
}
construct.prototype.init=函数(){
if(this.getvalue(“priValue1”)){
console.log(“值1”)
}
}
var nc=新构造();

nc.init()您可以将私有变量存储在对象中,并通过属性名访问它们

函数构造(){
var priVars={
1:0,
priValue2:0,
隐私3:0
};
this.getvalue=函数(\u输入){
返回priVars[_输入];
}
}
construct.prototype.init=函数(){
if(this.getvalue(“priValue1”)){
console.log(“值1”)
}
}
var nc=新构造();
nc.init()当您声明一个“私有变量”时,该变量不存储在
this
上,该变量可作为范围变量访问。我会用你自己的代码来写

this.getvalue = function(_input){
    return eval(_input);
}
若要在声明“private var”时动态获取值,该变量不存储在
this
上,则该变量可作为范围变量访问。我会用你自己的代码来写

this.getvalue = function(_input){
    return eval(_input);
}

要动态地获取值

返回输入
,而不是
返回这个[\u输入]
@sandepnayak,我认为这行不通。这将返回传入的参数。我想他们想访问他们声明的变量。在
上定义变量。例如
this.priValue1=0
code
function-construct(){this.priValue1=110;this.priValue2=120;this.priValue3=130;this.getvalue=function(_-input){console.log(_-input);console.log(this[_-input]);返回此[_-input];};}construct.prototype.init function(){if(this.getvalue(“priValue1”){console.log(“Value 1”);};var nc=new construct();nc.init();
@AlexanderO'Mara:同意。错过了那部分;
返回输入
而不是
返回这个[\u输入]
@sandepnayak我认为这行不通。这将返回传入的参数。我想他们想访问他们声明的变量。在
上定义变量。例如
this.priValue1=0
code
function-construct(){this.priValue1=110;this.priValue2=120;this.priValue3=130;this.getvalue=function(_-input){console.log(_-input);console.log(this[_-input]);返回此[_-input];};}construct.prototype.init function(){if(this.getvalue(“priValue1”){console.log(“Value 1”);};var nc=new construct();nc.init();
@AlexanderO'Mara:同意。错过了那部分;)Eww。。。如果
eval
是答案,那么这个问题就错了。也许这个问题错了,因为javascript上没有私有变量;)使用对象也很不错!哎哟。。。如果
eval
是答案,那么这个问题就错了。也许这个问题错了,因为javascript上没有私有变量;)使用对象也很不错!