欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

理解JS中的this

程序员文章站 2022-03-29 17:51:46
...

this是函数运行时自动生成的内部对象,this指的就是调用函数的那个对象。

函数调用的情况:

  • 作为函数的调用

  • 作为方法的调用

  • 构造函数的调用

  • apply方法调用


作为函数的调用

var x = 0;
function log() {
    console.log(this.x);
}
log(); //0
//这里的this就是window

作为方法的调用

function log() {
    console.log(this.x);
}
var obj = {};
obj.x = 0;
obj.log = log;
obj.log(); //0
//这里的this是obj

构造函数的调用

function Person() {
    this.name = "chinese";
}
var person = new Person();
console.log(person.name); //chinese

apply方法调用

var x = 1;
function log() {
    console.log(this.x);
}
var obj = {};
obj.x = 0;
obj.log = log;
obj.log.apply(window); //1 window可省略
obj.log.apply(obj); //0