新人加入,顺便带来一个问题
发布于 5 年前 作者 bln51779 4282 次浏览 来自 问答

写法.png

各位大佬,图中这三种写法分别有什么本质上的区别吗

4 回复

this 指向不同 ?

login() {} 是對象方法成員的簡寫,logout: function () {} 可以簡寫成 logout() {},但是簡寫的形式不能作為構造函數使用。userInfo: () => {} 是箭頭函數的寫法,不能作為構造函數,還有其他箭頭函數的「個性」。對象方法成員一般採用 login() {} 或者 logout: function () {} 這兩種寫法。

第一种是es6的写法,相当于第三种写法; 第二种写法也是es6的写法,目的是少些几个单词的代码.注意: 这样写的函数内,最好不要有this指向,可能达不到你预期的额效果;也就是说 let userM = { userinfo :()=>{ consolo.log(this) //这个this的指向不是 userM这个对象,指向windows对象 } }

补充一下箭头函数的this指向: 箭头函数绑定了父级作用域的上下文

回到顶部