Functions.js
var Functions = (function(String) {
//This regex is from require.js
var FUNCTION_ARGUMENT_REGEX_PATTERN = /^function\s*[^\(]*\(\s*([^\)]*)\)/m;
// protect old browser not support method trim
if (!String.prototype.trim) {
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g, '');
};
}
return {
/**
* regular expression pattern for get arguments name in the function
*/
FUNCTION_ARGUMENT_REGEX_PATTERN: FUNCTION_ARGUMENT_REGEX_PATTERN,
/**
* code from http://stackoverflow.com/questions/20058391/javascript-dependency-injection
*
* @param {Function} func
* @throws Error
* @returns {Array<String>} - array of arguments name
*/
getArgumentsName: function(func) {
if (typeof func !== 'function') {
throw new Error('require parameter as a function');
}
var args = func.toString().match(FUNCTION_ARGUMENT_REGEX_PATTERN)[1].split(',');
var length = args.length;
for (var i = 0; i < length; i++) {
args[i] = args[i].trim();
}
return args;
}
};
}).call(this, String);
Example to use
function test1(id, name, info){
}
function test2(userService){
}
function test3(pid, hcode, budgetYear, departmentId){
}
console.log(Functions.getArgumentsName(test1));
console.log(Functions.getArgumentsName(test2));
console.log(Functions.getArgumentsName(test3));

Generally I don't learn post on blogs, but I would like to say that this write-up
ตอบลบvery forced me to check out and do so! Your writing
taste has been amazed me. Thanks, very nice post.
Here is my web site SVM-SEO