Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.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 Ramda克隆和构造函数_Javascript_Ramda.js - Fatal编程技术网

Javascript Ramda克隆和构造函数

Javascript Ramda克隆和构造函数,javascript,ramda.js,Javascript,Ramda.js,我有要克隆的嵌套数据结构。此结构的一些深层元素是来自外部库的对象,其方法定义如下(此方法在该库的其他部分对此对象重复调用): 在更仔细地研究了Ramda文档和源代码之后,我意识到我遇到麻烦的原因是Ramda clone没有保存构造函数。我也研究过这个问题,了解这个问题有多复杂 . 所以,如果a可以假设我的数据结构不包含任何日期对象,我可以通过构造函数实现克隆吗(正如其中一个答案所示)?最好的行动方案是什么?谢谢大家! 您可以轻松克隆特定类型;如果您知道该类型的对象是如何构造的,并且重复该过程所

我有要克隆的嵌套数据结构。此结构的一些深层元素是来自外部库的对象,其方法定义如下(此方法在该库的其他部分对此对象重复调用):

在更仔细地研究了Ramda文档和源代码之后,我意识到我遇到麻烦的原因是Ramda clone没有保存构造函数。我也研究过这个问题,了解这个问题有多复杂 .


所以,如果a可以假设我的数据结构不包含任何日期对象,我可以通过构造函数实现克隆吗(正如其中一个答案所示)?最好的行动方案是什么?谢谢大家!

您可以轻松克隆特定类型;如果您知道该类型的对象是如何构造的,并且重复该过程所需的数据在您的范围内可用(可能在对象本身中),那么您通常可以复制该过程以创建克隆。但这对可能传递给通用
clone
函数的任意对象没有帮助。这就是为什么Ramda有它的局限性,很难想象一个通用的解决方案能很好地工作;如果您知道该类型的对象是如何构造的,并且重复该过程所需的数据在您的范围内可用(可能在对象本身中),那么您通常可以复制该过程以创建克隆。但这对可能传递给通用
clone
函数的任意对象没有帮助。这就是为什么Ramda有它的局限性,很难想象一个通用的解决方案能很好地工作。
clone: function () {
            return new this.constructor( this.x, this.y, this.z );
       }