Js中函数对象都有call与apply两个方法属性,二者使用方法和功能一样,只是传递参数的格式不同,call逐个传递单个参数,apply一次性传递一个参数数组。
这两个方法可以改变函数的调用对象,并且向函数中传递参数。如:
function send(str,speak){ speak.call(this,str); //send(~)==window.speak(str),这句话会立即调用执行此函数}send("你好!",function(strword){ //这里以匿名函数对象作为参数 console.log(strword);});
这里this指window对象(不清楚的话可以看我上偏博客),this后面的参数为传给函数的参数,结果会输出"你好!"。