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

Jee*_*eva 2 javascript inheritance ecmascript-6

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

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

console.log(MyClass.PI);
Run Code Online (Sandbox Code Playgroud)

Cer*_*nce 5

我想您可以使用a function而不是a class并使用setPrototypeOf

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

console.log(MyClass.PI);
Run Code Online (Sandbox Code Playgroud)

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

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

console.log(MyObj.PI);
MyObj.someOperation();
Run Code Online (Sandbox Code Playgroud)