Array.prototype.call(elements,function(e){//Do something});
最基本的call的使用
func.call(obj,argus) == obj.func(argus); 这个我理解
AClass.call(obj) ; 这个我也能理解
在此基础上,求对一开始那个例子的深入说明 或者文章 都可以
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
call是function才有的,call就是调用一个函数,和()括号运算符不一样的是,call可以改变function的上下文,就是内部的this的指向,起到用某个对象代理this运行的目的,同样的有apply。
Array.prototype.slice.call(nodelist) 就相当于给nodelist下挂一个slice方法,其函数体就是Array的slice,然后用nodelist调用这个slice方法,调用完毕马上把这个方法从nodelist中删除。
nodelist.slice = Array.prototype.slice;
nodelist.slice();
delete nodelist.slice;
function testCall(arg){
console.log(this.a);
console.log(arg);
}
testCall.call({a:2});
testCall.call({a:4},6);
var obj = {a:4,b:5};
testCall.call(obj,10);