一句话理解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