JS中的this

95 阅读1分钟

一句话理解this

调用方法的对象,方法中的this就指向该对象。

通俗一点就是obj.fn(),点号前面的对象就该方法的this指向。

全局window对象

我都知道在全局下声明一个方法,该方法可以使用window.functionName()来调用。也就是说在不显示的改变改方法的this的情况下直接调用该方法this是指向window的。

window.say = "hi"
function foo(){
	console.log(this.say)
}
foo() // hi
/*相当于*/
window.foo()

window.foo === foo //true

直接使用window.方法 名来声明这样更加直观的说明foo中的this会指向window。

window.foo(){...}

掌握this的方法

在python中使用传入self参数来显示的指向对象。js中没有显示的将this作为参数传入函数,js引擎帮我们做了这一步。这就导致了经常会发现this指着指着就不知道指向谁了。为了显示的绑定this可以使用call、apply、bind三个方法,用多了慢慢就理解this了。call、apply、bind的区别

方法中如果不需要this可以传入null