1.为什么this指向总是让人搞不懂?
答:this会在执行上下文中绑定一个对象,并且在不同的执行条件下会绑定不同的对象。
2.为什么要使用this?
答:this是一个常见关键字,在很多面向对象开发语言中存在,但是常见于在类class的方法中使用this。也就是我需要有一个类,类中的方法(特别是实例方法)中,this代表的是当前调用对象。
看下面这个例子,定义一个对象后,如果在定义的方法中需要使用对象中的某个字段,必须使用对象名称.属性名称。一旦修改了对象名称obj为info的话,那么在方法中使用的属性名称都要进行手动修改,很麻烦。
但是在实际开发中,我们一般会使用this来进行优化,当我们通过obj去调用方法时,this的指向就是obj对象。
在全局作用于下,this指向window
所有的函数在被调用时,都会创建一个执行上下文。这个上下文中记录着函数的调用栈、函数的调用方式、传入的参数信息等。this也是其中的一个属性。