⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 opt.js

📁 JsDoc Toolkit 是一个把js描述格式化成文档的工具。开发者只需按JsDoc的规范写好注释就可以很方便导出文档。这个JsDoc是Java版本的
💻 JS
字号:
/** @namespace */Opt = {	/**	 * Get commandline option values.	 * @param {Array} args Commandline arguments. Like ["-a=xml", "-b", "--class=new", "--debug"]	 * @param {object} optNames Map short names to long names. Like {a:"accept", b:"backtrace", c:"class", d:"debug"}.	 * @return {object} Short names and values. Like {a:"xml", b:true, c:"new", d:true}	 */	get: function(args, optNames) {		var opt = {"_": []}; // the unnamed option allows multiple values		for (var i = 0; i < args.length; i++) {			var arg = new String(args[i]);			var name;			var value;			if (arg.charAt(0) == "-") {				if (arg.charAt(1) == "-") { // it's a longname like --foo					arg = arg.substring(2);					var m = arg.split("=");					name = m.shift();					value = m.shift();					if (typeof value == "undefined") value = true;										for (var n in optNames) { // convert it to a shortname						if (name == optNames[n]) {							name = n;						}					}				}				else { // it's a shortname like -f					arg = arg.substring(1);					var m = arg.split("=");					name = m.shift();					value = m.shift();					if (typeof value == "undefined") value = true;										for (var n in optNames) { // find the matching key						if (name == n || name+'[]' == n) {							name = n;							break;						}					}				}				if (name.match(/(.+)\[\]$/)) { // it's an array type like n[]					name = RegExp.$1;					if (!opt[name]) opt[name] = [];				}								if (opt[name] && opt[name].push) {					opt[name].push(value);				}				else {					opt[name] = value;				}			}			else { // not associated with any optname				opt._.push(args[i]);			}		}		return opt;	}}/*t:	plan(11, "Testing Opt.");		is(		typeof Opt,		"object",		"Opt is an object."	);		is(		typeof Opt.get,		"function",		"Opt.get is a function."	);		var optNames = {a:"accept", b:"backtrace", c:"class", d:"debug", "e[]":"exceptions"};	var t_options = Opt.get(["-a=xml", "-b", "--class=new", "--debug", "-e=one", "-e=two", "foo", "bar"], optNames);		is(		t_options.a,		"xml",		"an option defined with a short name can be accessed by its short name."	);		is(		t_options.b,		true,		"an option defined with a short name and no value are true."	);		is(		t_options.c,		"new",		"an option defined with a long name can be accessed by its short name."	);		is(		t_options.d,		true,		"an option defined with a long name and no value are true."	);		is(		typeof t_options.e,		"object",		"an option that can accept multiple values is defined."	);		is(		t_options.e.length,		2,		"an option that can accept multiple values can have more than one value."	);		is(		t_options.e[1],		"two",		"an option that can accept multiple values can be accessed as an array."	);		is(		typeof t_options._,		"object",		"the property '_' is defined for unnamed options."	);		is(		t_options._[0],		"foo",		"the property '_' can be accessed as an array."	); */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -