可选参数 JavaScript 技巧
Optional arguments javascript trick
我正在尝试执行以下操作:
eventService.emit = function(name, optionalArg1, optionalArg2,... ){
$rootScope.$broadcast(name, optionalArg1, optionalArg2,...);
};
具有无限数量的可选参数。(广播"定义":$broadcast(字符串,参数...
我以为
eventService.emit =$rootScope.$broadcast;
可以工作,但它不能($broadcast函数可以访问$rootscope属性)和
eventService.emit = function(){
$rootScope.$broadcast(arguments);
};
似乎不起作用
感谢您的帮助
原始代码:
services.factory('eventService', function($rootScope, $http){
var eventObject = {};
eventObject.emit = function(name){
$rootScope.$broadcast(name);
};
return eventObject;
});
你可以
试试
eventService.emit = function(){
$rootScope.$broadcast.apply($rootScope, arguments); //you can change "this" to whatever you need
};
在这里,您使用参数"array"中的参数执行$rootScope.$broadcast(它实际上不是一个数组,但行为类似于一个数组),并在函数中使用这个(参数)。
您可以使用
apply()
(此处的文档):
eventService.emit = function(name, optionalArg1, optionalArg2,... )
{
$rootScope.$broadcast.apply(this, arguments);
};
[1]:
当我想要很多选择时,我所做的是这样的:
function myFunction(options){
if( options["whateverOptionYouWant"] != undefined ){
//TODO: implement whatever option you want
}
if( options["whateverOTHEROptionYouWant"] != undefined ){
//TODO: implement whatever OTHER option you want
}
}
等等,我需要尽可能多的选项。
这样称呼它:
myFunction({ whateverOptionYouWant: "some option variable" });
myFunction();
myFunction({
whateverOptionYouWant: "some option variable",
whateverOTHEROptionYouWant: "some other variable"});
相关文章:
- 使用技巧在javascript中强制执行私有继承
- 可选参数 JavaScript 技巧
- Javascript 我应该使用什么其他技巧来代替导出符号
- 在JavaScript中,双感叹号(!!)技巧总是产生true或false吗
- 一些流行的JavaScript快捷方式/技巧是什么
- 在iframe中使用javascript的想法/技巧
- 编辑网页与javascript技巧-如何“取消编辑”
- 使用JavaScript/HTML在移动web浏览器中防止手机睡眠的技巧
- 如何使用css和/或javascript实现此技巧
- CSS技巧'Javascript模块模式
- Javascript toString添加函数的技巧.它是如何工作的
- OpenWebkitSharp for . net——任何让Javascript在这种情况下使用它的技巧
- Internet Explorer JavaScript中的技巧
- 有害的Javascript技巧
- 用JavaScript和HTML5制作桌面游戏在线GUI的技巧
- Javascript/jQuery:IE7/8出现SCRIPT438错误,有调试技巧吗
- 中级javascript程序员编写更好代码的技巧
- PHP/JavaScript代码组织技巧
- Javascript 无法理解一个技巧变量“提升”:为什么它是 NaN 值
- Fabrice Bellard用了什么技巧让他的Javascript PC模拟器如此快速