修改JavaScript对象

时间:2016-05-08 15:18:16

标签: javascript

只使用JavaScript而不是像jQuery这样的库,在将对象传递给函数之前是否有更优雅的方法(如jquery.extend())来修改对象?

var o={
    a:1,
    b:2,
    c:3,
    d:function(){alert('f');}
};
o.e='abc';
o.f='cba';
o.g=function(){alert ('f1');};
foo(o);
o.e='xyz';
o.f='zyx';
o.g=function(){alert ('f2');};
foo(o);

1 个答案:

答案 0 :(得分:1)

除了任何版本的Internet Explorer之外的现代浏览器(根据MDN无论如何)支持Object.assign(),除了单参数语义之外,它与jQuery.extend()大致相同。

foo(Object.assign(o, { e: "abc", f: "cba" }));

也应该在Node中可用(再次,ES2015版本)。