在JS中调用函数的模式可以分为4种: 方法调用模式、函数调用模式、构造器调用模式、apply调用模式。
- 一、方法调用模式
如下:
var obj = {
name: "123",
sayName: function() {
console.log(this.name);
}
};
obj.sayName(); //123
函数作为对象的一个属性,调用时this指向这个对象。
- 二、函数调用模式
如下:
function sayName() {
console.log(this.name);
}
sayName();
函数作为函数来调用,调用时this指向全局对象window。
- 三、构造函数模式
如下:
function Obj() {
this.name = "123";
}
var person = new Obj();
console.log(person.name); //123
new关键字调用,this指向创建的对象
- 四、apply调用模式
如下:
var person = {
name: "123"
};
function sayName() {
console.log(this.name);
}
sayName(); //window
sayName.apply(person); //123
sayName.apply(); //window
有参数时,this指向参数对象,无参数时,this指向window