绑定事件的function形式
来源:8-5 event(4)

慕盖茨5496228
2021-06-28
老师,我看处理事件绑定正则那块可以匹配function的形式,但为啥点击会报console未定义?
写回答
1回答
-
<HelloWorld @click.native="function() {
console.log(123)
}">
</HelloWorld>
这个模板会被编译成function render() {
with(this) {
return _c('HelloWorld', {
nativeOn: {
"click": function ($event) {
return (function () {
console.log(123)
}).apply(null, arguments)
}
}
})
}
}
那么在运行时,执行这个代码,遇到 console. 它会先从 this 上查找,也就是组件实例上找,但是组件上并没有定义 console 这个函数,所以就直接报错了。
模板导出工具:https://template-explorer.vuejs.org/#%20%3CHelloWorld%20%40click.native%3D%22function()%20%7B%0A%20%20%20%20%20%20console.log(123)%0A%20%20%20%20%7D%22%3E%0A%20%20%20%20%3C%2FHelloWorld%3E122021-06-30
相似问题