我只是选择了Javascript,我不明白这个问题。
我创建了一个名为DeleteReasonCodes
的自定义对象,其中包含一个名为delReasonCodes
的实例变量,声明为数组。但是,内部方法似乎无法看到此实例变量。每次我尝试运行它时,都会出现delReasonCodes is not defined
错误。
也许我只是不理解Javascript范围规则?
var DeleteReasonCodes = {
delReasonCodes: [],
get: function ()
{
return delReasonCodes;
},
add: function (code, desc)
{
delReasonCodes.push(new DeleteReasonCode(code, desc));
}
};
答案 0 :(得分:2)
不,javascript范围属于函数(没有别的)。
您创建的唯一变量是DeleteReasonCodes
,并且您已为其分配了一个包含3个属性的对象。如果您有对象的引用,则可以通过property accessor operator访问它们。在您的情况下,您可以使用this.delReasonCode
或DeleteReasonCodes.delReasonCode
- 请参阅this answer了解差异。
答案 1 :(得分:1)
您正在使用另一种语言处理JavaScript对象。 JavaScript中的本地范围仅驻留在函数内部,而不是对象。在您的情况下,您需要使用完全限定名称访问数据:
DeleteReasonCodes.delReasonCodes.push();
答案 2 :(得分:0)
如果你这样做
delReasonCodes: [],
get: function() {
return this.delReasonCodes;
},