1: 一個物件的 原型鏈 中 如果設定了set,get方法的屬性, 則物件會自動寫入此屬性.
2: 程式碼如下
let test = {
a:1,b:2
}
Object.defineProperty(test,'a',{
set(){
return 'set'
},
get(){
return 'get'
}
})
let o = {};
o.__proto__ = test;
3: 在控制台中查看 o
4: 為什麼o物件也有了a屬性?
眼見不一定為憑…
不信你
Object.getOwnPropertyDescriptor(o, 'a')
與Object.getOwnPropertyDescriptor(test, 'a')
分別執行試試看。這應該只是chrome的調試工具為了方便顯示打造的效果,firefox下就不會出現這種情況。