我正在使用lodash來消除函數調用,但我想知道爲什麼我的this
值不像我預期的繼承範圍。Vue手錶[脂肪箭頭範圍]提供了錯誤的上下文
這些是我的Vue組件的相關部分。
import debounce from 'lodash/debounce';
watch: {
query: debounce(() => {
this.autocomplete();
}, 200, {
leading: false,
trailing: true
}),
以上的情況下不工作,因爲我this
值不指向Vue的組件,而是這樣表示的對象:
Object
__esModule: true
default: Object
__proto: Object
是不是我的箭語法假設繼承上下文this
?
以下似乎工作正常:
query: debounce(function test() {
this.autocomplete();
}, 200, {
leading: false,
trailing: true
})
有可能是這一個簡單的答案,但我希望有人能幫助我在這裏。
使用常規的功能,而不是箭頭的功能,如果你需要的Vue'this'上下文。你可以在Vue的文檔中找到它。 – wostex
您應該仔細閱讀箭頭功能的工作原理。例如。 http://exploringjs.com/es6/ch_arrow-functions.html – nils
@nils它們的工作方式與我期望的完全相同,只是與Vue顯然不同。下面的答案解釋更多。 –