移动端h5页面,Object.assign()不兼容的解决方法

在一些手机浏览器上,页面Object.assign是没有的,这导致该方法失效。

解决的方法:

     检测Object.assign方法是否存在,不存在则重写,

     重写的方法就是把https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/assign里面的polyfill的代码复制过来使用即可

  

if (typeof Object.assign != 'function') {

     // Must be writable: true, enumerable: false, configurable: true

    Object.defineProperty(Object, "assign", {

          value: function assign(target, varArgs) { // .length of function is 2

          'use strict';

           if (target == null) { // TypeError if undefined or null

           throw new TypeError('Cannot convert undefined or null to object');

      }

      var to = Object(target);

       for (var index = 1; index < arguments.length; index++) {

       var nextSource = arguments[index];

       if (nextSource != null) { // Skip over if undefined or null

       for (var nextKey in nextSource) {

       // Avoid bugs when hasOwnProperty is shadowed

        if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {

         to[nextKey] = nextSource[nextKey];

          }

        }

      }

 }

    return to;

},

writable: true,

configurable: true

});

}

 
 
 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值