請問以下代碼的輸出是什么?并解釋為什么輸出的是這個?
精慕HU
2019-11-06 12:05:28
TA貢獻1802條經驗 獲得超4個贊
1 undefined 2
解釋如下:
new A().a; // 先在A的實例上找a屬性,找不到,然后在搜索原型鏈,找到了1 new B().a; // B的實例上其實是有a屬性的,這個屬性值是undefined new C(2).a; // C的實例上有屬性a,值是2
實際上,我們最后得到的三個對象是:
{}; {a: undefined} {a: 2}
然后三個對象的原型鏈上都有a屬性,所以,屬性訪問的時候,先在實例上找,找不到再去找原型鏈。
舉報