var ninja ={
yell:function(n){
return n>0?ninja.yell(n-1)+'a':'hi';
}
};
var samurai = {yell:ninja.yell};
var ninja = {};
samurai.yell(4) == 'hiaaaa';
会报错。。
修改方法:把
return n>0?ninja.yell(n-1)+'a':'hi';
改为
return n>0?this.yell(n-1)+'a':'hi';
或者
yell:function yell(n){
return n>0?yell(n-1)+'a':'hi';
}
报错原因:js对象的创建、释放原则。