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

Javascript 访问对象和对象/函数中的对象,javascript,Javascript,为什么返回空值?如何获取和设置对象 请帮忙。。谢谢。请在提交前检查您的代码,有两个语法错误(缺少’和,) 到 原因是,this在您的代码中this.var1.varx='x'引用了test.method1,而不是test,因此如果您在test.method1中定义var1:{varx:null,vary:null},那么console.log(test.method1.submath2())将不会给出空结果(建议:使用chrome进行调试) var测试={ var1:{varx:null,va

为什么返回空值?如何获取和设置对象


请帮忙。。谢谢。

请在提交前检查您的代码,有两个语法错误(缺少’和,)

原因是,
this
在您的代码中
this.var1.varx='x'
引用了
test.method1
,而不是
test
,因此如果您在
test.method1
中定义
var1:{varx:null,vary:null}
,那么
console.log(test.method1.submath2())
将不会给出空结果(建议:使用chrome进行调试)


var测试={
var1:{varx:null,vary:null},
方法1:{
var1:{varx:null,vary:null},
子项1:功能(x){
this.var1.varx='x'
},
子项2:函数(){
返回this.var1.varx;
}
},
get_varx:函数(){
返回this.var1.varx;
}
}
test.method1.submeth1(‘我的新值’);//值
console.log(test.method1.submeth2());//null
console.log(test.get_varx());//null

this.var1.varx=x'this.var1.varx=x'从此行中删除
,并在行尾添加
。此代码有几个问题。2语法错误(只需删除代码即可找到它们)以及各种范围问题。
this.var1
在调用
test.method1.submeth2
时将是未定义的,因为
this
submeth2中的
值将是
method1
。您可以通过调用
test.method1.submeth2.call(test,'some value')来解决问题
顺便问一下,如何在submeth1或submeth2方法中访问测试的varx?
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
    submeth1: function (x) {
      this.var1.varx = x'
    }
    submeth1: function (x) {
      this.var1.varx = 'x'
    },
<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>