在JavaScript中,函数是否可能以字符串形式返回其自身的函数调用?
function getOwnFunctionCall(){
//return the function call as a string, based on the parameters that are given to the function.
}
我希望此函数简单地以字符串形式返回其自身的函数调用(如果可能的话):
var theString = getOwnFunctionCall(5, "3", /(a|b|c)/);
//This function call should simply return the string "getOwnFunctionCall(5, \"3\", "\/(a|b|c)\/")".
最佳答案
我把这个放在jsFiddle:http://jsfiddle.net/pGXgh/上。
function getOwnFunctionCall() {
var result = "getOwnFunctionCall(";
for (var i=0; i < arguments.length; i++) {
var isString = (toString.call(arguments[i]) == '[object String]');
var quote = (isString) ? "\"" : "";
result += ((i > 0) ? ", " : "");
result += (quote + arguments[i] + quote);
}
return result + ")";
}
alert(getOwnFunctionCall(5, "3", /(a|b|c)/));
请注意,这应该适用于您的示例,但仍需要处理作为参数包含的任意复杂对象/ JSON。