在ES6中,当您创建具有原型属性的类时,如何在类的实例化(baz)上设置那些道具biznew

class Foo {}

Foo.prototype.baz = 1;
Foo.prototype.biz = 'wow';

var thing = new Foo() // How to also set prototype values of .baz & .biz on creation?



class Baz {

  constructor(biz) {
   this.biz = biz
  }
}

var baz = new Baz(); // will not put properties on the prototype.

最佳答案

它是

class Baz {
  constructor(biz) {
    Object.getPrototypeOf(this).biz = biz
    // or
    // this.constructor.prototype.biz = biz
  }
}

const baz1 = new Baz(1); // baz1.biz === 1
const baz2 = new Baz(2); // baz2.biz === 2
baz1.biz === baz2.biz; // === 2


在任何合理的情况下,这都不是人们想要做的。

关于javascript - 在es6中是否可以实例化一个类并定义类似于经典构造函数的原型(prototype)属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40731347/

10-10 07:43