猿问

对象属性赋值问题

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来解决这个问题。可是不明白为什么属性名必须要一样呢?

https://img2.mukewang.com/5c628c7d00015a2104040319.jpg

还有这个对象的属性作为另一个对象的属性,在实际的执行栈中是怎么存放的呢?是这样吗?

https://img2.mukewang.com/5c628c810001fed905930800.jpg

扬帆大鱼
浏览 398回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答