2017-08-25 21 views
2

@clickで要素を取得したとします。両方の方法が働いているので、その名前に関数を渡すことと、それを呼び出すことの間の実際の違いは何ですか?それはコールのための別の抽象レベルunderhoodを作成しますか?一つの方法が優先されていますか?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

私はパフォーマンス上の大きな違いは認識していません。違いがある場合は、信じられないほど小さい可能性があります。あなたは関数を呼び出すために必要なものを使うべきです。私がイベントを使用していない場合は、()を使用します。 –

関連する問題