Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何复制Javascript构造函数&;具有类语法的原型对象_Javascript_Class_Prototype - Fatal编程技术网

如何复制Javascript构造函数&;具有类语法的原型对象

如何复制Javascript构造函数&;具有类语法的原型对象,javascript,class,prototype,Javascript,Class,Prototype,我有一个相当简单的容器示例,它将一个值隐藏起来,并允许您单独对其进行操作 出于我自己的兴趣,我已经将这个对象的基本结构从.prototype转换为类语法。但是这个例子使用了一个时髦的方法来创建这个对象的新实例,我不知道如何在类语法中复制它(参见下面的代码) 这将转换为(类语法): 我认为问题在于“of”方法只是作为助手绑定到“Container”的单个原始实例上,这样就不必每次都编写此类的实例时都编写“new”。但我不知道如何用类语法复制这样的绑定 从类自己的方法之一实例化自己的类是不可能的吗?

我有一个相当简单的容器示例,它将一个值隐藏起来,并允许您单独对其进行操作

出于我自己的兴趣,我已经将这个对象的基本结构从.prototype转换为类语法。但是这个例子使用了一个时髦的方法来创建这个对象的新实例,我不知道如何在类语法中复制它(参见下面的代码)

这将转换为(类语法):

我认为问题在于“of”方法只是作为助手绑定到“Container”的单个原始实例上,这样就不必每次都编写此类的实例时都编写“new”。但我不知道如何用类语法复制这样的绑定


从类自己的方法之一实例化自己的类是不可能的吗?

只需将函数声明为
static

class Container {
  constructor(x) {
    this.val = x
  }

  map(f) {
    return Container.of(f(this.val))
  }

  static of(x) {                       // ????????
    return new Container(x)
  }
}

工作得很好。谢谢,这是我收到的最快最有效的回复。
class Container {
  constructor(x) {
    this.val = x
  }

  map(f) {
    return Container.of(f(this.val))
  }

  of = (x) => {                       // ????????
    return new Container(x)
  }
}
class Container {
  constructor(x) {
    this.val = x
  }

  map(f) {
    return Container.of(f(this.val))
  }

  static of(x) {                       // ????????
    return new Container(x)
  }
}