如何理解和熟练运用js中的call及apply
1个回答
2016-08-22 · 知道合伙人互联网行家
护肤达人IT宅族
知道合伙人互联网行家
向TA提问 私信TA
知道合伙人互联网行家
采纳数:5637
获赞数:17441
毕业于曲阜师范大学,学士学位。互联网行业2年从业经验,读过SEO相关书籍。现任爱家网SEO优化专员。
向TA提问 私信TA
关注
展开全部
书上都有例子,多看看,照着打几次,就感觉出来了,
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和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对象
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询