什么是Object.assign的一个很好的替代品?

时间:2018-01-14 02:20:25

标签: javascript

我有

var shared = {
}

var stuff = Object.assign(Object.create(shared),{
   //stuff
});

但是Object.assign并不适用于Safari,我也不想使用像Babel这样的东西,因为我的网站已经有点迟了。是否有任何好的选择,所以我可以这样做,同时保持"东西"继承到"共享" ..

var shared = {
}

var stuff = Object.create(shared);
stuff = {//stuff
};

我意识到我可以简单地将属性逐个分配给" stuff"但是我在那里有很多属性,这会使代码组织得不那么有条理

2 个答案:

答案 0 :(得分:0)

如果你想要另一种复制属性的方法,那么如何做这样的事情(复制从A到B的所有内容):

const a = {hello:1, world:2};
const b = {};
Object.keys(a).forEach(k => b[k] = a[k]);
// b is now {hello:1, world:2}.

答案 1 :(得分:0)

如果您想要对代码库进行最少的更改,请使用快速脏解决方案,请尝试以下pkg https://github.com/rubennorte/es6-object-assign

在我看来,你应该使用捆绑框架,比如webpack,以及babel。有许多方法可以减少捆绑的文件大小,例如树摇动,缩小,分离供应商文件以及将JS文件发送到浏览器,并且它根本没有延迟。