其实js的this指向很简单。我们记住下面3种情况。
function fn(){ this.name=‘yangkun‘; this.age=28; }
当我们执行fn()的时候,这个普通函数中的this指向到底是什么?答案就是指向的是浏览器中的window.(这里说明,这里实在浏览器下,如果是node环境不是)。
function fn(){ this.name=‘yangkun‘; this.age=28; }var f=new fn;
console.log(f.name);//yangkun//这个时候貌似this指向的是实例中的name值。
fn类(这里使用了构造函数new方式生成,这个时候函数fn可以看做是一个类),生成了一个实例f ,其中f的name,就是类分配给实例f的私有属性值,这个时候this指向的就是f实例。
综上所描述:1规律:如果在点语法前有谁,这个this就是谁。2 如果使用call,apply,bind这些方法可以改变this的指向性。