Object.assign() 之 IE 兼容 (TypeError: 对象不支持“assign”属性或方法)

直接复制拿去IE大佬上面用一下就可以了,兄嘚。

// IE 兼容方法
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;
  };
}

// 以下为测试代码
var target = { a: 1, b: 2 };
var source = { b: 4, c: 5 };

var returnedTarget = Object.assign(target, source);

console.log(target);
// expected output: Object { a: 1, b: 4, c: 5 }

console.log(returnedTarget);
// expected output: Object { a: 1, b: 4, c: 5 }

原文地址:https://www.cnblogs.com/wen233/p/11269258.html

时间: 2024-10-09 00:16:39

Object.assign() 之 IE 兼容 (TypeError: 对象不支持“assign”属性或方法)的相关文章

解决IE10以下对象不支持“bind”属性或方法

IE10一下的浏览器,如果在JS代码中用了bind函数,那么就会报“SCRIPT438: 对象不支持“bind”属性或方法” 因为浏览器没有提供这个参数的方法,所以我们就自己写一个bind,来让这个参数生效. //解决IE10以下不支持Function.bind if (!Function.prototype.bind) { Function.prototype.bind = function(oThis) { if (typeof this !== "function") { thr

解决对象不支持“getElementsByClassName”属性或方法 ie兼容性

  解决 IE 或者兼容模式不支持 document.getElementsByClassName() 的方法 自已实现document.getElementsByClassName(): 网页错误详细信息消息: 对象不支持此属性或方法 document.getElementsByClassName('element_name') 需要自己实现下该方法,因为ie5之前的版本并不支持这个方法 有以下四种方法,第四种兼容性最好  一. [javascript] view plaincopy   //

对象不支持ajax属性或方法

今天在做泛微流程开发的时候,遇到一件很奇怪的事情,流程流转到第二个节点,居然报错了,提示”对象不支持ajax属性和方法“,但是第一个节点测试并未报错了, /(ㄒoㄒ)/~~,然后试着把jQuery的简写“$"改成”JQuery“后,不在提示”对象不支持ajax属性和方法“错误,而是变成了“automation服务器不能创建对象”问题,看下了错误的代码 行”var xhr = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLH

javascript错误:对象不支持此属性或方法

javascript错误:对象不支持此属性或方法 出现如上错误的原因主要有以下两种: 1.方法对应的JS函数未定义 2.属性所用的id名字跟函数名相同也会报此错误,id或函数名改个地方即可.

ie7/8浏览器报错:对象不支持&ldquo;trim&rdquo;属性或方法

解决方法: 方法1: 使用jquery里面的全局函数$.trim()代替原生js方法trim(): $.trim( 你要替换的字符 ); 方法2: Function.prototype.method = function (name, func) { this.prototype[name] = func; return this; }; if (!String.prototype.trim) { //判断下浏览器是否自带有trim()方法 String.method('trim', funct

关于使用jquery时,ie8下提示对象不支持的属性或方法的解决办法

转自:http://wapapp.baidu.com/auoong/item/538790fcbe87c834d7ff8cde 首先这个问题的前提是已经排除了常见的这个问题.下面说一种今天我碰到的一种情况. 浏览器报的错误: 1.在xp/win7系统下安装的是ie8的报的错误是:对象不支持此属性与方法. 2.在win8下报的错误是:对象不支持"toLowerCase"属性或方法,即使是调整成ie8模式也是这个错误. 出错的代码段为jquery的源代码,如下: var b=a.nodeN

jmail组件 对象不支持此属性或方法: &#39;JMail.ServerAddress&#39; 的解决办法

jmail组件是asp最常用的邮件发送工具,自己有一个网站,已经使用这个jmail组件有8年了,但不知道为什么在12号突然出现无法正常发送邮件的问题, 后来经过测试代码,发现IIS报的错误为:对象不支持此属性或方法: 'JMail.ServerAddress',遇到不明白的,当然就是先度娘了,百度了2天都没有发现有相同错误的案例及解决的办法, 我的代码如下: Dim JMail Set JMail=Server.CreateObject("JMail.Message") if err

对象不支持“abigimage”属性或方法

在一个网页中用了一个js插件, js文件引用的没有错,代码也和demo差不多,  但是运行时ie的调试工具报了一个错: 解决方案: jquery文件冲突,发现原来自己引过一个 <script src="js/jquery-1.11.0.min.js"></script>  , 这里又引入了一个 <script type="text/javascript" src="js/jquery-2.0.3.min.js">

jquery1.8 在IE8 下面报错:对象不支持此属性或方法 return b.getAttribute(&quot;id&quot;)===a

jquery1.8 在IE8 下面报错: 对象不支持此属性或方法 调试发现是下面这一行报错: 在IE8下面报错,在chrome和firefox都是好的. 实在找不到原因,最后把源码改成下面这样: 没有报错了. 更好的方法,应该可以先 判断 elem 对象是否有 getAttribute() 这个函数,如果没有就是有 eleem["id"] 来代替.