各位大佬,图中这三种写法分别有什么本质上的区别吗
this 指向不同 ?
login() {} 是對象方法成員的簡寫,logout: function () {} 可以簡寫成 logout() {},但是簡寫的形式不能作為構造函數使用。userInfo: () => {} 是箭頭函數的寫法,不能作為構造函數,還有其他箭頭函數的「個性」。對象方法成員一般採用 login() {} 或者 logout: function () {} 這兩種寫法。
login() {}
logout: function () {}
logout() {}
userInfo: () => {}
第一种是es6的写法,相当于第三种写法; 第二种写法也是es6的写法,目的是少些几个单词的代码.注意: 这样写的函数内,最好不要有this指向,可能达不到你预期的额效果;也就是说 let userM = { userinfo :()=>{ consolo.log(this) //这个this的指向不是 userM这个对象,指向windows对象 } }
补充一下箭头函数的this指向: 箭头函数绑定了父级作用域的上下文
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
this 指向不同 ?
login() {}是對象方法成員的簡寫,logout: function () {}可以簡寫成logout() {},但是簡寫的形式不能作為構造函數使用。userInfo: () => {}是箭頭函數的寫法,不能作為構造函數,還有其他箭頭函數的「個性」。對象方法成員一般採用login() {}或者logout: function () {}這兩種寫法。第一种是es6的写法,相当于第三种写法; 第二种写法也是es6的写法,目的是少些几个单词的代码.注意: 这样写的函数内,最好不要有this指向,可能达不到你预期的额效果;也就是说 let userM = { userinfo :()=>{ consolo.log(this) //这个this的指向不是 userM这个对象,指向windows对象 } }
补充一下箭头函数的this指向: 箭头函数绑定了父级作用域的上下文