javascript 函数作为 class 不返回私有变量
javascript function as a class not returning private variable
我已经使用 javascript 对象作为命名空间并将函数定义为 property.Inside 该函数有两个 属性 参考 this
parameter.One 的 属性 是一个函数,其他是一个变量。现在,当我调用此函数(定义为对此的引用)时,我想 return 第二个引用的值 属性(这是一个变量)。但是在这个函数的范围内,我无法获取变量的值。我在这里缺少什么吗?
定义
var myNameSpace = myNameSpace || {};
myNameSpace.myClass = function(){
this.myVar = someValue;
var someConstantVar = 17.012;
this.myFunction = function(){
...
var returnValue = someConstantVar + ((this.myVar+22)*1.09);
return returnValue;
};
}
用法
var testObject = new myNameSpace.myClass();
testObject.myVar = someNewValue;
var output = testObject.myFunction();
现在出现未定义的错误this.myVar
(这很可能)。那么如何在函数内部获取this.myVar
的值。
这应该适合你:
var myNameSpace = myNameSpace || {};
myNameSpace.myClass = function() {
this.myVar = 3;
this.myFunction = function() {
return this.myVar;
};
}
var testObject = new myNameSpace.myClass();
var output = testObject.myFunction(); // 3
myVar
是您通过 new myNameSpace.myClass()
创建的每个对象的字段。要从对象内部访问字段,您必须使用 this
.
另外,在这个实现中,myVar
实际上是public,所以你可以直接这样访问:
output.myVar // 3
要使 myVar
成为私有变量,您可以这样做:
var myNameSpace = myNameSpace || {};
myNameSpace.myClass = function() {
var myVar = 3;
this.myFunction = function() {
return myVar;
};
}
你可以这样做。
var myNameSpace = myNameSpace || {};
myNameSpace.myClass = function(){
var that = this;
this.myVar = 'someValue';
this.myFunction = function(){
return that.myVar; //Here I need to return this.myVar
};
}
"this" inside "this.myFunction" 的范围仅限于 "this.myFunction"。您需要 "myClass"
的范围
我已经使用 javascript 对象作为命名空间并将函数定义为 property.Inside 该函数有两个 属性 参考 this
parameter.One 的 属性 是一个函数,其他是一个变量。现在,当我调用此函数(定义为对此的引用)时,我想 return 第二个引用的值 属性(这是一个变量)。但是在这个函数的范围内,我无法获取变量的值。我在这里缺少什么吗?
定义
var myNameSpace = myNameSpace || {};
myNameSpace.myClass = function(){
this.myVar = someValue;
var someConstantVar = 17.012;
this.myFunction = function(){
...
var returnValue = someConstantVar + ((this.myVar+22)*1.09);
return returnValue;
};
}
用法
var testObject = new myNameSpace.myClass();
testObject.myVar = someNewValue;
var output = testObject.myFunction();
现在出现未定义的错误this.myVar
(这很可能)。那么如何在函数内部获取this.myVar
的值。
这应该适合你:
var myNameSpace = myNameSpace || {};
myNameSpace.myClass = function() {
this.myVar = 3;
this.myFunction = function() {
return this.myVar;
};
}
var testObject = new myNameSpace.myClass();
var output = testObject.myFunction(); // 3
myVar
是您通过 new myNameSpace.myClass()
创建的每个对象的字段。要从对象内部访问字段,您必须使用 this
.
另外,在这个实现中,myVar
实际上是public,所以你可以直接这样访问:
output.myVar // 3
要使 myVar
成为私有变量,您可以这样做:
var myNameSpace = myNameSpace || {};
myNameSpace.myClass = function() {
var myVar = 3;
this.myFunction = function() {
return myVar;
};
}
你可以这样做。
var myNameSpace = myNameSpace || {};
myNameSpace.myClass = function(){
var that = this;
this.myVar = 'someValue';
this.myFunction = function(){
return that.myVar; //Here I need to return this.myVar
};
}
"this" inside "this.myFunction" 的范围仅限于 "this.myFunction"。您需要 "myClass"
的范围