完美解决IE低版本不支持call与apply的问题

 更新时间:2013年12月05日 09:53:25   作者:  
这篇文章主要是对解决IE低版本不支持call与apply的问题进行了详细的介绍。需要的朋友可以过来参考下,希望对大家有所帮助
Function.prototype的apply和call是在1999年发布的ECMA262 Edition3中才加入的(1998年发布ECMA262 Edition2)。在此前的的浏览器如IE5.01(JScript 5.0)中是没有apply和call的。因此会带来一些兼容性问题,以下是修复方式:
复制代码 代码如下:

if(!Function.prototype.apply){
    Function.prototype.apply = function(obj, args){
        obj = obj == undefined ? window : Object(obj);//obj可以是js基本类型
        var i = 0, ary = [], str;
        if(args){
            for( len=args.length; i<len; i++ ){
                ary[i] = "args[" + i + "]";
            }
        }
        obj._apply = this;
        str = 'obj._apply(' + ary.join(',') + ')';
        try{
            return eval(str);
        }catch(e){
        }finally{
            delete obj._apply;
        }   
    };
}
if(!Function.prototype.call){
    Function.prototype.call = function(obj){
        var i = 1, args = [];
        for( len=arguments.length; i<len; i++ ){
            args[i-1] = arguments[i];
        }
        return this.apply(obj, args);
    };
}

相关文章

  • Javascript动画效果(3)

    Javascript动画效果(3)

    这篇文章主要为大家详细介绍了第三篇Javascript动画效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • BootStrap 页签切换失效的解决方法

    BootStrap 页签切换失效的解决方法

    bootstrap开发标签页时,标签页显示正常,但点击时候对应内容区域没有变化。接下来通过本文给大家分享BootStrap 页签切换失效的解决方法,感兴趣的朋友一起看看吧
    2017-08-08
  • 解决axios会发送两次请求,有个OPTIONS请求的问题

    解决axios会发送两次请求,有个OPTIONS请求的问题

    这篇文章主要介绍了解决axios会发送两次请求,有个OPTIONS请求的问题,需要的朋友可以参考下
    2018-10-10
  • 微信小程序实现多个按钮的颜色状态转换

    微信小程序实现多个按钮的颜色状态转换

    这篇文章主要为大家详细介绍了微信小程序实现多个按钮的颜色状态转换,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • JavaScript学习笔记之函数记忆

    JavaScript学习笔记之函数记忆

    这篇文章主要介绍了JavaScript学习笔记之函数记忆,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • javascript批量修改文件编码格式的方法

    javascript批量修改文件编码格式的方法

    这篇文章主要介绍了javascript批量修改文件编码格式的方法,分析了使用javascript第三方包批量修改文件编码的技巧,需要的朋友可以参考下
    2015-01-01
  • js实现简单轮播图效果

    js实现简单轮播图效果

    这篇文章主要为大家详细介绍了js实现简单轮播图效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • JavaScript setTimeout()基本用法有哪些

    JavaScript setTimeout()基本用法有哪些

    这篇文章主要介绍了JavaScript setTimeout()基本用法有哪些,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Javascript中关于Array.filter()的妙用详解

    Javascript中关于Array.filter()的妙用详解

    大家应该都知道filter是Javascript中Array常用的操作,它用于把Array的某些元素过滤掉,然后返回剩下的元素。下面这篇文章就给大家介绍了关于Javascript中Array.filter()的妙用,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2016-12-12
  • 使用JS实现简易计算器

    使用JS实现简易计算器

    这篇文章主要为大家详细介绍了使用JS实现简易计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06

最新评论