87,992
社区成员
发帖
与我相关
我的任务
分享
var obj1 = {
name : 'obj1 name'
} , obj2 = {
name : 'obj2 name'
} , name = 'window name';
function applyDemo(){
alert(this==obj1);
alert(this==obj2);
alert(this==window);
alert(this.name);
}
applyDemo();//this默认指向window对象
applyDemo.apply(obj1);//用apply改变作用域,使this指向obj1
applyDemo.apply(obj2);//用apply改变作用域,使this指向obj2
运行上面一段代码应该就明白了吧,和apply功能类似的还有一个call,它们两者的区别就是传参方面,apply接受一个数组,call接收不是。