如何理解和熟练运用js中的call及apply

 我来答
ITjob5
2016-10-12 · TA获得超过209个赞
知道小有建树答主
回答量:399
采纳率:0%
帮助的人:351万
展开全部
书上都有例子,多看看,照着打几次,就感觉出来了,
call和apply的用途都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值,也就是把想要运行的代码的作用域拿过来。比如你有一个函数o 但是如果直接执行,因为现在在当期作用域中并没有定义函数o。而是在另外一个函数作用域中定义的,比如
Window.color=“ red“;
var o={color:“blue”};
function sayColor(){
alert(this.color);
}
sayColor();// red
sayColor(this);//red
sayColor(window);//red
sayColor(o);//blue
他们的区别仅在于接受参数的不同
首先apply()方法接受两个参数一个是在其中运行函数的作用域,另一个是参数数组,其中第二个可以是Array的实例也可以是arguments对象
对于call()方法而言,第一个参数是this值没有变化,变化的是其余参数直接传递给函数。换句话说,在使用call()方法时,传递给函数的参数必须逐个列举出来
具体可以看JavaScript高级程序设计的116页,网上有pdf版本的下载
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式