哈文';ECMA5(最新的JavaScript)是否有用于复制对象的内置函数?
我需要像Node.js中的Ext.apply这样的东西。最明显的方法是定义我自己的:哈文';ECMA5(最新的JavaScript)是否有用于复制对象的内置函数?,javascript,node.js,ecmascript-5,Javascript,Node.js,Ecmascript 5,我需要像Node.js中的Ext.apply这样的东西。最明显的方法是定义我自己的: function simplestApply(dst, src1) { for (var key in src) if (src.hasOwnProperty(key)) Object.defineProperty(dst, key, Object.getOwnPropertyDescriptor(src, key)); } 但是没有任何内置函数用于相同的目的吗?这是最快的方法,但它不会复制这些函
function simplestApply(dst, src1) {
for (var key in src) if (src.hasOwnProperty(key))
Object.defineProperty(dst, key, Object.getOwnPropertyDescriptor(src, key));
}
但是没有任何内置函数用于相同的目的吗?这是最快的方法,但它不会复制这些函数
JSON.parse(JSON.stringify(obj))
函数。应用
?它在V8中构建,因此在Node.No中构建。函数的apply()与上面的Ext.apply()和simplestApply()有着截然不同的用途。啊,您需要类似于合并?-那么不,香草js中没有这样的东西。或jQuery.extend()
或Object.append()
(MooTools)。谢谢。我刚刚发现了一些基于框架的UTIL的内置特性,比如bind
。我认为它也可能是用于merge | extend | append | apply的。此方法不会将属性应用于现有对象。这是一种克隆类似JSON的树的方法。但它很快,这是真的。根据我的测试,大约比simplestApply({},obj)
快3倍。你也可以这样做<代码>变量b={};对于(a中的变量i){b[i]=a[i];}
它更快: