欢迎您访问我爱IT技术网,今天小编为你分享的javascript教程:【完美解决IE低版本不支持call与apply的问题】,下面是详细的讲解!
完美解决IE低版本不支持call与apply的问题
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);
};
}
关于完美解决IE低版本不支持call与apply的问题的用户互动如下:
相关问题:JavaScript中的call()和apply(),我不是问他们的区...
答:call的定义是“调用一个对象的方法,用另一个对象替换当前对象” call 方法可以用来代表另一个对象调用一个方法。 call 方法使您得以将一个函数的对象上下文从初始的上下文改变为由第一个参数指定的新对象 apply的定义是“返回某对象的一个方法,用... >>详细
相关问题:js中apply()和call()方法有用吗?用处不大我就不深...
答:给你举个例子 定义数组a里有3个元素1,2,3,函数add()能向调用它的数组压入一个数,这个数是3个参数之和 add.call(a,1,2,3);和add.apply(a,b);的效果都是一样的,都是向数组a压入(1+2+3) 由此看出call和apply的区别是传入参数方式的区别, call的... >>详细
相关问题:javascript call apply 不理解 请高手请教
答:call和apply有个用处,就是可以用变量作为函数名称来调用。比如函数的回调函数。具体用法是:被执行函数.call(a,b,c...),其中a是在被执行函数中this需要指定的对象,可以为null,其他参数作为被执行函数的参数。apply用法类似,只不过第二个参数... >>详细
- 【firefox】firefox浏览器不支持innerText的解决
- 【Extjs】Extjs学习过程中新手容易碰到的低级错误
- 【clearInterval】js clearInterval()方法的定义
- 【ComboBox】ComboBox 和 DateField 在IE下消失的
- 【dom】javascript dom追加内容实现示例-追加内容
- 【has】基于jquery的has()方法以及与find()方法以
- 【extjs】Extjs入门之动态加载树代码-动态加载树
- 【checkbox】让checkbox不选中即将选中的checkbox
- 【Array】js中更短的 Array 类型转换-类型转换
- 【append】append和appendTo的区别以及appendChil
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
