可以将Math对象继承到es6类吗?

时间:2019-05-06 10:48:51

标签: javascript inheritance ecmascript-6

我可以在课堂上扩展Math对象吗?我希望Math静态字段在我的课程中是静态的。

class MyClass extends Math {
  constructor() {
    super();
  }
}

console.log(MyClass.PI);

1 个答案:

答案 0 :(得分:5)

我想您可以使用function代替class并使用setPrototypeOf

function MyClass() {
}
Object.setPrototypeOf(MyClass, Math);
MyClass.prototype = Object.create(Math);

console.log(MyClass.PI);

但是Math无法实例化。像上课一样使用它没有多大意义。仅使用从Math继承的普通对象可能更有意义:

const MyObj = Object.create(Math);
MyObj.someOperation = () => {
  console.log('some operation');
};

console.log(MyObj.PI);
MyObj.someOperation();