VueJS - 传递函数名称和调用之间的区别

时间:2017-08-25 10:25:59

标签: javascript vuejs2 frontend

假设我们使用@click获得了一个元素。通过它的名称传递函数和使用它的调用之间的真正区别是什么,因为两种方式都有效。它是否为呼叫创造了另一个抽象级别的发动机?是一种方式吗?

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

1 个答案:

答案 0 :(得分:2)

如果使用其名称,则会将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