任何人都可以提出建议,因为此代码可能有什么问题?
在构造函数中设置的变量只能在创建对象时访问,但是一旦我调用了对象的方法之一,该变量就不再可以访问。
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()作为函数而不是方法进行调用,这将不起作用。