javascript中函数调用的四种模式
【摘自qq_39201210 :原文链接】
- 函数调用模式
- 对象调用模式
- 构造函数调用模式
- 上下文调用模式
【说明】不同的函数调用模式,this的指向不同。
1.函数调用模式
function test(){
console.log(this);//window
}
test();
【说明】test() 其实应该这样写window.test();test()调用的对象是window.
2. 对象调用模式
var age = 10;
var obj = {
age : 20,
test:function(){
console.log(this.age); //20
}
}
obj.test();
【说明】将函数作为对象的属性,这样就转化为对象的一个方法。通过对象调用这个方法时,this就指向调用这个方法的对象。.
3.构造函数模式
function Person(age){
this.age = age;
this.sayAge = function() {
console.log(this.age);
}
}
var obj =new Person(18);
obj.sayAge();//18
var obj1 = new Person(20);
obj1.sayAge(); //20
【说明】构造函数中的this指定的是new关键字创建出来的对象
关于前端面试的经验之谈 (来自各位前辈博主的文章)
【前端面试(面试官篇)】 :摘自青岑lw (原文链接)