完美解决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);
    };
}

相关文章

  • DPlayer.js视频播放插件使用方法

    DPlayer.js视频播放插件使用方法

    这篇文章主要为大家详细介绍了JSx实现简单控制视频播放倍速,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • JS 网页彩蛋 实现代码

    JS 网页彩蛋 实现代码

    显示一定时间后消失,刷新之后清空变量值,重新开始记录键值。 程序的原理就是检测按键的键值,当达到预定条件时执行规定的函数。
    2009-09-09
  • JavaScript里四舍五入函数round用法实例

    JavaScript里四舍五入函数round用法实例

    这篇文章主要介绍了JavaScript里四舍五入函数round用法,实例分析了round函数的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • 一起深入理解js中的事件对象

    一起深入理解js中的事件对象

    这篇文章主要给大家介绍了关于js中事件对象的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • js window.print实现打印特定控件或内容

    js window.print实现打印特定控件或内容

    window.print可以打印网页,但有时候我们只希望打印特定控件或内容,怎么办呢?可以把要打印的内容放在div中,然后用下面的代码进行打印,希望对大家有所帮助
    2013-09-09
  • js制作提示框插件

    js制作提示框插件

    这篇文章主要介绍了js制作提示框插件的方法,帮助大家更好的理解和使用js,感兴趣的朋友可以了解下
    2020-12-12
  • ExtJs的Ext.Ajax.request实现waitMsg等待提示效果

    ExtJs的Ext.Ajax.request实现waitMsg等待提示效果

    这篇文章主要介绍了ExtJs的Ext.Ajax.request实现waitMsg等待提示效果,需要的朋友可以参考下
    2017-06-06
  • javascript经典特效分享 手风琴、轮播图、图片滑动

    javascript经典特效分享 手风琴、轮播图、图片滑动

    这篇文章主要介绍了javascript经典特效,手风琴、轮播图、图片滑动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • JavaScript对Cookie进行读写操作实例

    JavaScript对Cookie进行读写操作实例

    这篇文章主要介绍了JavaScript对Cookie进行读写操作的方法,实例分析了javascript针对cookie的读写操作技巧,非常简单实用,需要的朋友可以参考下
    2015-07-07
  • 基于JavaScript如何实现私有成员的语法特征及私有成员的实现方式

    基于JavaScript如何实现私有成员的语法特征及私有成员的实现方式

    本文给大家介绍基于JavaScript如何实现私有成员的语法特征及私有成员的实现方式,涉及到javascript语法特征相关知识,对本文感兴趣的朋友快来一起学习吧
    2015-10-10

最新评论