标签:应用 class 调用 cal pre 传递 prototype app 对象
在处理类数组中,发现了两种将数组方法应用于类数组的方法,现将call/apply的常用方式总结一下。
一、当做函数调用
function print_vars(var1,var2){ console.log( var1 ); console.log( var2 ); console.log( this.name ); console.log( this.age ); } var o = { name:‘tester‘, age:16 }; print_vars.call( o,1,2);
二、作为对象的方法,给第三方使用
var arr = { "0":1, "1":2, "2":3, length:3 }; //用数组实例的every方法应用在arr上 var rst = [].every.call(arr,function(v,i,a){ return v>0; }); console.log( rst );
此处,用一个[]数组实例,来引用它的every方法的call方法;
三、作为原型的方法,给第三方使用
var arr = { "0":1, "1":2, "2":3, length:3 }; var rst = Array.prototype.every.call( arr,function(v,i,a){ return v>0; } ); console.log( "rst:"+rst );
此处,用Array的原型对象中的every方法的call方法来实现。
apply的用法与call类似,只不过以数组形式传递新参而已。
后面再继续补充,(#^.^#)~
标签:应用 class 调用 cal pre 传递 prototype app 对象
原文地址:https://www.cnblogs.com/surfer/p/9639784.html