我在angular应用程序的以下代码中使用ES6
。 Object.assign
可以在IE以外的任何地方正常工作。
const resetSuppItem = (item) => {
Object.assign(vm.suppitem, _.pick($scope.item, ['item1', 'item2', 'item3']));
}
有什么变通办法,使其可以在IE中工作?
答案 0 :(得分:2)
一种解决方法是使用jQuery方法extend(),该方法非常简单,并且可以在IE和Chrome中使用:
var user = {Name: 'Marshall', Surname: 'Depp'};
var newUserObj = $.extend({}, user);
newUserObj.Country = 'USA';
newUserObj.Mobile= 'xxxxxxxxxx';
console.log(user);
console.log(newUserObj);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
答案 1 :(得分:0)
最好的选择是使用polyfill。如果不使用它,也许:
function newAssign(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (source.hasOwnProperty(key)) {
target[key] = source[key];
}
}
}
return target;
}
答案 2 :(得分:0)
我的解决方案:
cp snapshot.backup-XXX/* SOLR_DATA/index/
与Object.assign()非常相似
示例:
function assign(target, ...sources) {
var result = target;
sources.forEach(function(source) {
var keys = Object.keys(source);
keys.forEach(function(key) {
result[key] = source[key];
});
});
return result;
}