亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Object.defineProperty中這段代碼如何理解?實際中有用的上的地方嗎?在哪使用?

Object.defineProperty中這段代碼如何理解?實際中有用的上的地方嗎?在哪使用?

繁花如伊 2018-09-07 14:16:16
  // 循環使用同一對象    function withValue(value) {      var d = withValue.d || (        withValue.d = {          enumerable: false,          writable: false,          configurable: false,          value: null        }      );      d.value = value;      return d;    }    // ... 并且 ...    Object.defineProperty(obj, "key", withValue("static"));
查看完整描述

1 回答

?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

這段代碼的功能就是鎖定obj中的key屬性,給他賦值'static'后,key屬性就變得不可枚舉,不可寫。

可能不好理解的地方就是這個函數采用了類似'惰性加載'的性質

當withValue這個函數運行一次之后,withValue.d會被初始化,下次調用withValue函數的時候,可以直接從withValue.d取值

實際上用的時候就是凍住了這個對象的屬性值,起到了保護該屬性值的作用,具體應用,那就得看場景需求了。


查看完整回答
反對 回復 2018-10-17
  • 1 回答
  • 0 關注
  • 642 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號