var ninja={
chirp:function(n){
return n>1?ninja.chirp(n-1)+"-chirp":"chirp";
}
}
var s={chirp:ninja.chirp};
ninja={};
s.chirp(3);
上面这段代码会出错,因为ninja={};把对象清空了,找不到ninja.chirp了。所以会报错。
可以用this来解决这个问题。可是不明白为什么属性名必须要一样呢?
还有这个对象的属性作为另一个对象的属性,在实际的执行栈中是怎么存放的呢?是这样吗?
相关分类