可选参数javascript技巧

cri*_*dol 1 javascript jquery arguments

我正在尝试执行以下操作:

eventService.emit = function(name, optionalArg1, optionalArg2,... ){
    $rootScope.$broadcast(name, optionalArg1, optionalArg2,...);
};
Run Code Online (Sandbox Code Playgroud)

具有无限数量的可选参数.(广播"定义":$ broadcast(字符串,args ......))

我想

eventService.emit =$rootScope.$broadcast;
Run Code Online (Sandbox Code Playgroud)

会工作,但它没有($ broadcast函数可以访问$ rootscope属性)和

eventService.emit = function(){
    $rootScope.$broadcast(arguments);
};
Run Code Online (Sandbox Code Playgroud)

似乎不起作用

谢谢您的帮助

原始代码:

services.factory('eventService', function($rootScope, $http){
    var eventObject = {};

    eventObject.emit = function(name){

       $rootScope.$broadcast(name);

    };
    return eventObject;
});
Run Code Online (Sandbox Code Playgroud)

nic*_*elo 6

你可以试试

eventService.emit = function(){

    $rootScope.$broadcast.apply($rootScope, arguments); //you can change "this" to whatever you need
};
Run Code Online (Sandbox Code Playgroud)

在这里你用参数"array"执行$ rootScope.$ broadcast(它不是一个真正的数组,但表现得像一个),并在函数中使用这个(参数).