任何人都可以提出建议,因为此代码可能有什么问题?
在构造函数中设置的变量只能在创建对象时访问,但是一旦我调用了对象的方法之一,该变量就不再可以访问。

function Animal(name) {
      this.name = name
}

Animal.prototype = (function()
{
    var i = 0;
    var sitdown = function() {
                      console.log(this.name + ' sits down.');
                      standup();
                  };
    var standup = function (){
                      console.log(this.name+' stands up');
                      if(i != 10)
                      {
                        i++;
                        sitdown();
                      }
                  };
    return {
        standup: standup
    }
})();

var Tiger = new Animal("Tiger");
Tiger.standup();


输出:

Tiger stands up
 sits down.
 stands up
 sits down.
 .......
 .......
 stands up
 sits down.
 stands up

最佳答案

“ this”仅包含对象引用(如果您


使用方法语法调用该函数,例如this.sitdown()
或使用call()/ apply()调用它,就像在sitdown()中那样:standup.call(this)


您的standup()方法将sitdown()作为函数而不是方法进行调用,这将不起作用。

09-17 01:12