2011-10-09 31 views

回答

8

Object.defineProperty將默認爲enumerable: falseconfigurable: false,而對象文本的getter語法將默認爲enumerable: trueconfigurable: true。這可以通過Object.getOwnPropertyDescriptor(obj, "prop")進行驗證。

這意味着,在前者的情況下prop將在for顯示 - in循環和Object.keys(obj),並做了delete obj.prop將失敗(鬧哄哄地在嚴格模式下,默默地其他)。對於後一種情況,情況正好相反。

請注意,Object.defineProperty(或Object.createObject.defineProperties)將允許您單獨選擇您的屬性的可配置性和可枚舉性,而對象字面getter語法不會。

相關問題