对象里的函数简写方式和箭头函数及this指向

2019-08-28  本文已影响0人  WWWWWWWWWWWWWWM

对象里的函数简写和正常写法

下面是三者的this指向问题

var obj1 = {
    fun () {
        console.log(this);
    }
};
var obj2 = {
    fun: function () {
        console.log(this);
    }
}
var obj3 = {
    fun: () => {
        console.log(this)
    }
}
obj1.fun();  //obj1
obj2.fun();   //obj2
obj3.fun();   //window

讲解


var obj = {
    pro: {
        getPro: ()=>{
            console.log(this);
        }
    }
}
  obj.pro.getPro()  //window

箭头函数是在getPRo这里定义的,他上一级是一个pro对象,这不是作用域,所以上一级的作用域就是var obj ,也就是全局作用域window

除此之外再说个this指向加深理解

var obj = {
    say: function() {
        var f1 = ()=>{
            console.log("1111",this);   
        }
        f1();
    }
}
var o = obj.say;

o();//f1执行时,say函数指向window,所以f1中的this指向window
obj.say();//f1执行时,say函数指向obj,所以f1中的this指向obj;

上一篇 下一篇

猜你喜欢

热点阅读