javascript hook 一个函数,不定参数个数

function add() {
    var sum = 0;
    for (var i = 0; i < arguments.length; i++)
        sum += arguments[i];
    return sum;
}

var realAdd = add;

add = function () {
    alert("hooked add");
    var parameters = [];
    var exp = [];
    for (var i = 0; i < arguments.length; i++) {
        parameters.push(arguments[i]);
        exp.push("parameters[" + i + "]");
    }
    var exp = "realAdd(" + exp.join(",") + ")";
    return eval(exp);
}

alert(add(1, 2, 3, 4));