gpt4 book ai didi

javascript函数作为类不返回私有(private)变量

转载 作者:行者123 更新时间:2023-11-28 18:52:56 25 4
gpt4 key购买 nike

我使用 javascript 对象作为命名空间,并将函数定义为属性。函数内部有两个引用 this 参数的属性。其中一个属性是函数,另一个是属性多变的。现在,当我调用这个函数(定义为对此的引用)时,我想返回第二个引用属性的值(这是一个变量)。但在这个函数的范围内,我无法获取变量的值。我在这里缺少什么吗?

定义

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 成为私有(private)变量,您可以这样做:

var myNameSpace = myNameSpace || {};
myNameSpace.myClass = function() {
var myVar = 3;

this.myFunction = function() {
return myVar;
};
}

关于javascript函数作为类不返回私有(private)变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34178275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com