发布于 2016-08-18 22:51:41
正如其他人所提到的,IE不支持Object.assign()方法,但有一个polyfill可用,只需在您的插件声明之前包含它:
if (typeof Object.assign != 'function') {
Object.assign = function(target) {
'use strict';
if (target == null) {
throw new TypeError('Cannot convert undefined or null to object');
}
target = Object(target);
for (var index = 1; index < arguments.length; index++) {
var source = arguments[index];
if (source != null) {
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
}
return target;
};
}
来自https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
测试页面:http://jsbin.com/pimixel/edit?html,js,output (只需删除polyfill,就会得到与页面上相同的错误)。
发布于 2016-08-20 11:09:59
@John Doe
我从您的评论中了解到,您希望在node/react堆栈中实现此功能。这与原来的问题非常不同,你应该问你自己的问题;)
不管怎样,这是你需要做的..。
您可以使用es6-object-assign。它是一个ES6 Object.assign() "polyfill“。
首先,在根文件夹的package.json
中,添加es6-object-assign
作为依赖项:
"dependencies": {
"es6-object-assign": "^1.0.2",
"react": "^0.12.0",
...
},
然后,如果您想在节点环境中使用它,请使用:
require('es6-object-assign').polyfill();
如果你在前端(浏览器)有问题...
将其添加到index.html文件中...
<script src="location_of_node_modules/es6-object-assign/dist/object-assign.min.js"></script>
<script>
window.ObjectAssign.polyfill();
</script>
location_of_node_modules
依赖于您使用的样板文件,大多数情况下只使用node_modules
,但有时当index.html在一个子目录中时,您需要使用../node_modules
发布于 2016-08-16 01:44:46
根据文档,Object.assign()是一项新技术,是ECMAScript 2015 (ES6)标准的一部分:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
并且IE不支持它。
https://stackoverflow.com/questions/35215360
复制相似问题