2017-08-25 58 views
2

假設我們有一個帶有@click的元素。傳遞給它的名稱和使用它的調用之間有什麼真正的區別,因爲這兩種方式都起作用。它是否爲呼叫創建了另一個抽象層?有一種方法是優先的嗎?VueJS - 傳遞函數名稱和調用之間的區別

<element @click="functionName"></element> 
<element @click="functionName()"></element> 

回答

1

如果使用其名稱,Event對象將傳遞給函數。如果您需要查看event.target,這很有用。

<element @click="functionName"></element> 

functionName(x){ 
    console.log(x) 
} 

output (example as it'll change based on the event): 
MouseEvent {isTrusted: true, screenX: 494, screenY: 88, clientX: 494, clientY: 22, …} 

如果引用完整函數調用,則顯式聲明傳遞給函數的內容。

<element @click="functionName()"></element> 

functionName(x){ 
    console.log(x) 
} 

output: 
undefined 

再或者用什麼定義:

<element @click="functionName('foo')"></element> 

functionName(x){ 
    console.log(x) 
} 

output: 
foo 
+0

是的,我是知道的。我的問題是,當你沒有/在你的功能中使用任何參數時,發生了什麼事。就像,只是通過它的名字更快地調用函數? –

+0

我不知道有任何顯着的性能差異。如果有區別,它可能非常小。你應該使用你需要的任何一個來調用這個函數。如果我不使用該事件,那麼我只使用()。 –

相關問題