为了账号安全,请及时绑定邮箱和手机立即绑定

self.dispatch.apply(self, args); 这个怎么理解?

self.dispatch.apply(self, args); 这个怎么理解?

jeck猫 2019-03-13 21:23:48
/**         * 添加一个组件实例到大屏中         *         * @param {Component} component 组件实例         * @return {Screen}         */        addComponent: function (component) {            var self = this;            // 绑定组件的所有事件            component.bind(function (event) {                var args = Array.prototype.slice.call(arguments, 1);                args.unshift(this);                args.unshift('component.' + event);                self.dispatch.apply(self, args);            });            // 添加到大屏中            component.render(self.container);            // 放入列表中            self.componentsById[component.id] = component;            return self;        }
查看完整描述

2 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

遇到这种问题,你应该先了解一下 apply 的意义。它表示执行函数,并且以第一个参数作为 context,第二个参数作为函数的参数依次传入。

所以在这个地方,因为组件本身是通用的,有哪些事件,需要传入哪些参数无法确定,所以只好使用 apply 的方式把所有事件全部传到处理函数中。


查看完整回答
反对 回复 2019-03-15
  • 2 回答
  • 0 关注
  • 878 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号