怎么判断传递的是:函数引用还是函数的返回值?

这两种绑定事件有什么区别?

第一种方式绑定事件:

<el-switch :before-change="() => beforeChangeHandler(scope.row)"/>

第二种方式绑定事件:

<el-switch :before-change="beforeChangeHandler(scope.row)" />

很多同学以为这2种方式绑定事件的方式是相同的,没有什么区别。其实是有区别的。

区别

1,触发的时机不同:
第一种:用户点击开关时才会被 beforeChangeHandler 事件
第二种:组件渲染阶段就会执行 beforeChangeHandler 事件

2,传递的内容不同:
第一种:传递的是一个函数引用
第二种:传递的是函数返回值

如何判断传递的是函数引用还是返回值?

最简单的判断方法:
如果是使用的箭头函数绑定,是函数引用
如果直接绑定,有括号,返回值。无括号,函数引用。
还有一种方法来判断:看控制台,立即执行的是函数返回值。否则就是函数引用。

写法 传递的是 说明
:prop="handler" ⭐ 函数引用 没有括号,直接传函数
:prop="handler()" 📦 返回值 有括号,立即执行并传结果
:prop="() => handler()" ⭐ 函数引用 箭头函数包裹,延迟执行
:prop="() => handler" ⭐ 函数引用 箭头函数返回函数
posted @ 2026-05-29 13:38  南风晚来晚相识  阅读(9)  评论(0)    收藏  举报