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来解决这个问题。可是不明白为什么属性名必须要一样呢?还有这个对象的属性作为另一个对象的属性,在实际的执行栈中是怎么存放的呢?是这样吗?
添加回答
举报
0/150
提交
取消