在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。

10-06 02:59