首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取错误:对象不支持属性或方法'assign‘

获取错误:对象不支持属性或方法'assign‘
EN

Stack Overflow用户
提问于 2016-02-05 10:34:11
回答 11查看 67.6K关注 0票数 57

我在我的WordPress站点上使用了这个jquery弹出插件from this link。它在所有浏览器上都工作得很好,但在IE11上会出现以下错误。

EN

回答 11

Stack Overflow用户

发布于 2016-08-18 22:51:41

正如其他人所提到的,IE不支持Object.assign()方法,但有一个polyfill可用,只需在您的插件声明之前包含它:

代码语言:javascript
运行
复制
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,就会得到与页面上相同的错误)。

票数 120
EN

Stack Overflow用户

发布于 2016-08-20 11:09:59

@John Doe

我从您的评论中了解到,您希望在node/react堆栈中实现此功能。这与原来的问题非常不同,你应该问你自己的问题;)

不管怎样,这是你需要做的..。

您可以使用es6-object-assign。它是一个ES6 Object.assign() "polyfill“。

首先,在根文件夹的package.json中,添加es6-object-assign作为依赖项:

代码语言:javascript
运行
复制
"dependencies": {
    "es6-object-assign": "^1.0.2",
    "react": "^0.12.0",
    ...
  },

然后,如果您想在节点环境中使用它,请使用:

代码语言:javascript
运行
复制
require('es6-object-assign').polyfill();

如果你在前端(浏览器)有问题...

将其添加到index.html文件中...

代码语言:javascript
运行
复制
<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

票数 8
EN

Stack Overflow用户

发布于 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不支持它。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35215360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档