Jep*_*ino 10 javascript ecmascript-6 vue.js
我开始学习Vue.js和ECMA6语法,我在教程中看到了这一点:
methods: {
someMethod: function() {
console.log(this) // this works
}
}
Run Code Online (Sandbox Code Playgroud)
然后我认为语法可能是:
methods: {
someMethod: () => {
console.log(this) // this undefined
}
}
Run Code Online (Sandbox Code Playgroud)
但这有效:
methods: {
someMethod () {
console.log(this) // this works
}
}
Run Code Online (Sandbox Code Playgroud)
可以解释差异和ECMA5的语法吗?
在您的三个选项中,ES5仅支持第一个选项.另外两个是ES6中的新增功能.
第三个选项是第一个选项的ES6快捷方式,因此它们在ES6中的工作方式相同.
当您使用第二个箭头语法时,this
不会将其设置为第一个和第三个中的主机对象.这是箭头语法的功能之一,因此在您希望this
设置为主机对象时不应使用它.相反,this
将设置为定义代码的词汇上下文 - 通常称为" this
封闭上下文中的值"或"此词的值",在您的情况下,这将this
是宿主对象的时间.最初宣布哪个显然是undefined
.
这是关于箭头功能的一篇很好的参考文章:ES6深度:箭头功能
归档时间: |
|
查看次数: |
300 次 |
最近记录: |