鍍金池/ 問答/HTML/ Object.defineProperty()中g(shù)et、set為什么不能和wri

Object.defineProperty()中g(shù)et、set為什么不能和writable一起用?

Object.defineProperty()中g(shù)et、set為什么不能和writable一起用會報錯

var obj = {}
Object.defineProperty(obj, 'name', {
  configurable: true,
  enumerable: true,
  writable: true,
  value: 2,
  set(value) {
    name = value
  },
  get() {
    return value
  }
})
obj.name = 2
console.log(obj.name)

如上代碼,會報 Cannot both specify accessors and a value or writable attribute 這個錯
求解

回答
編輯回答
單眼皮

如果一個描述符不具有value,writable,get 和 set 任意一個關(guān)鍵字,那么它將被認(rèn)為是一個數(shù)據(jù)描述符。如果一個描述符同時有(value或writable)和(get或set)關(guān)鍵字,將會產(chǎn)生一個異常。 ---------取自MDN原話。

意思大概就是不可能定一個屬性即可以對它進(jìn)行正常讀寫,又可以在它上面架設(shè)一層getter/setter來進(jìn)行訪問改寫。

MDN地址 > https://developer.mozilla.org...

手機(jī)碼字,見諒(逃

2017年3月3日 02:07