访问对象和对象/函数中的对象

时间:2013-09-20 04:02:29

标签: javascript

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?我如何获得并设置对象?

请帮助..谢谢..

1 个答案:

答案 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>