var test = {
var1: {varx: null, vary: null},
method1: {
submeth1: function (x) {
this.var1.varx = x'
}
submeth2: function() {
return this.var1.varx;
}
},
get_varx: function () {
return this.var1.varx;
}
}
test.method1.submeth1('my new value'); // the value
console.log(test.method1.submeth2()); // null
console.log(test.get_varx()); // null
为什么它返回null?我如何获得并设置对象?
请帮助..谢谢..
答案 0 :(得分:1)
请在提交前检查您的代码,两个语法错误(缺少'和,)
submeth1: function (x) {
this.var1.varx = x'
}
到
submeth1: function (x) {
this.var1.varx = 'x'
},
原因是,代码this
中的this.var1.varx = 'x'
引用了test.method1
,而不是test
,因此如果您在var1: {varx: null, vary: null}
中定义test.method1
},console.log(test.method1.submeth2())
不会给出null结果(建议:使用chrome来调试)
<script>
var test = {
var1: {varx: null, vary: null},
method1: {
var1: {varx: null, vary: null},
submeth1: function (x) {
this.var1.varx = 'x'
},
submeth2: function() {
return this.var1.varx;
}
},
get_varx: function () {
return this.var1.varx;
}
}
test.method1.submeth1('my new value'); // the value
console.log(test.method1.submeth2()); // null
console.log(test.get_varx()); // null
</script>