如何调试JavaScript代码?

时间:2016-12-16 10:23:20

标签: javascript javascript-objects

var myObject = {
  name: function() {
    return "Michael";
  }(),
  age: 28,
  sayName: function() {
    alert(this.name + ":" + this.age);
  }(),
  specialFunction: function() {
    myObject = this;
    if (this == myObject) altert(console.log(this.sayName));
  }
}()
};

我试图从同一个对象中的其他方法调用对象的方法,但我只是得到undefined

我认为允许内部范围对象访问外部范围对象,但是这种情况忽略了该规则。

1 个答案:

答案 0 :(得分:0)

试试这个



(function(window){
      var myObject = {
        name: function(){
          return "Michael";
        }(),
        age: 28,
        sayName: function(){
          alert(this.name + ":" + this.age);
        },
        specialFunction : function(){
          myObject=this;
          if(this==myObject)
          alert(console.log(this.sayName));
        }
      }
      window.myObject = myObject;
    })(window);
    
    myObject.sayName();




发生了什么,当你调用sayName函数时,它会获得自己的执行环境并查找一个名为myObject的对象,该对象尚未定义。然后它在容器函数中查找此对象。所以我们要做的是定义并将此对象带入window对象并在那里调用该函数。这样它就能找到这个对象。