久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

javascript - 關(guān)于defineProperty的value

瀏覽:137日期:2023-05-31 13:23:28

問題描述

> var a = {}> Object.defineProperty(a, 'b', {... value: 110}){}> a{}> a.b110> a.b = 555555> a.b110> var aa = {b: 1}undefined> Object.defineProperty(aa, 'b', {... value: 119}){ b: 119 }> aa.b119> aa.b = 11> aa.b1

為什么aa.b可更改,a.b不能?

問題解答

回答1:

屬性描述符有三個屬性分別是 configurable enumerable writable,默認(rèn)值均為 false而使用對象字面量定義的屬性描述符均為 true,可以通過 Object.getOwnPropertyDescriptor(a, ’b’) 及 Object.getOwnPropertyDescriptor(aa, ’b’) 來獲取兩個屬性的描述符。

所以 a.b 不可修改,aa.b 可以修改。

回答2:

因為默認(rèn)情況下,通過Object.defineProperty()定義的屬性的屬性值均為false是不可寫的.

a = {}Object.getOwnPropertyDescriptor(a, ’b’)// > undefinedObject.defineProperty(a, 'b', {value: 119})Object.getOwnPropertyDescriptor(a, ’b’)// > Object {value: 119, writable: false, enumerable: false, configurable: false}

而通過對象字面量定義的屬性默認(rèn)是可寫的,調(diào)用`

aa = { b: 1 }Object.getOwnPropertyDescriptor(aa, ’b’)// > Object {value: 1, writable: true, enumerable: true, configurable: true}

所以aa的b屬性是可寫的. 所以O(shè)bject.defineProperty()并不改變屬性的屬性值.所以aa的b的值會改變.

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 班戈县| 怀宁县| 隆德县| 锦屏县| 湄潭县| 广宁县| 桑日县| 绥阳县| 修水县| 开封县| 固阳县| 西和县| 彝良县| 浦江县| 博客| 张掖市| 翁源县| 铁岭县| 礼泉县| 徐州市| 宁乡县| 唐山市| 沈丘县| 静宁县| 鹤庆县| 喀喇沁旗| 仁怀市| 姚安县| 璧山县| 台中市| 五峰| 襄垣县| 长子县| 鹿泉市| 五台县| 荔波县| 聊城市| 绩溪县| 阿克陶县| 荆州市| 乌海市|