vue $emit内部原理

Vue.prototype.$emit = function (event) {
    const vm = this
    let cbs = vm._events[event]
    if (cbs) {
        const args = toArray(arguments, 1)
        for (let i = 0; i < cbs.length; i++) {
            try {
                cbs[i].apply(vm, args)
            } catch (error) {
                handleError()
            }
        }
    }
    return vm
}

不是只有一个参数吗 arguments的长度不是1吗,还有为什么不需要第一个参数

阅读 1.3k
1 个回答


arguments不一定是1,可以任意个,这里只显示命名第一个参数是第一个参数是事件名,其余的都当做是参数
https://developer.mozilla.org...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题