当在JavaScript中调用函数时,常常使用this
关键字来指向当前正在调用的函数。但this
实际上有不同的使用方式,本篇文章将会对这些用法进行总结和说明。
1. 函数调用
当在函数内部直接使用this
时,它将指向全局对象(浏览器中的window
对象)。
function foo() {
console.log(this); // window
}
foo();
2. 对象方法调用
当将函数作为对象的方法调用时,this
将指向该对象。
var obj = {
name: 'Tom',
sayName: function() {
console.log(this.name);
}
};
obj.sayName(); // Tom
3. 构造函数调用
当使用new
关键字创建对象时,this
指向创建的新对象。
function Person(name, age) {
this.name = name;
this.age = age;
}
var person = new Person('Tom', 20);
console.log(person.name); // Tom
console.log(person.age); // 20
4. 函数通过call()
和apply()
方法调用
可以使用call()
和apply()
方法手动指定函数内部的this
值。
function sayHello() {
console.log('Hello ' + this.name);
}
var obj = { name: 'Tom' };
sayHello.call(obj); // Hello Tom
sayHello.apply(obj); // Hello Tom
总的来说,javascript
中this
的指向,取决于函数的调用方式。在函数调用时,可以通过不同的方式来手动指定this
的值,从而更好地控制函数的执行上下文。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript this用法小结 - Python技术站