为什么我不能在Object.define中使用胖箭头函数

时间:2018-04-04 17:06:16

标签: javascript arrow-functions defineproperty

为什么我不能在Object.define()中使用胖箭头功能?

最小,完整且可验证的示例

作品

class Car {
  constructor(color) {
    this.color = color;
  }
}
Object.defineProperty(Car.prototype, 'getColor', {
  value: function() { // <--- ******** HERE ***********************
    return this.color
  }
  , writable:false
  , configurable: true
  , enumerable: true
})
const redCar = new Car('red');

console.log(redCar.getColor()); //-> red

class Car {
  constructor(color) {
    this.color = color;
  }
}
Object.defineProperty(Car.prototype, 'getColor', {
  value: () => { // <--- DOES NOT WORK
    return this.color
  }
  , writable:false
  , configurable: true
  , enumerable: true
})
const redCar = new Car('red');

console.log(redCar.getColor()); //-> undefined

0 个答案:

没有答案