代码之家  ›  专栏  ›  技术社区  ›  Zuhair Taha

javascript获取被调用函数的参数?

  •  -1
  • Zuhair Taha  · 技术社区  · 6 年前

    function add(a, b) {
        return a + b;
    }
    
    function myFunc(method) {
        // I'm trying to     get method arguments in next line
        if (method.apply(null, arguments[0]) !== 'number') // it shows here: method.apply is not a function
            throw new Error('argument 1 must be a number');
        return method;
    }
    
    console.log(myFunc(add(1, 2)));
    

    正如您所看到的,myFunc有一个函数作为参数,我想得到这个被调用的函数参数。这是我的尝试:

    method.apply(null,arguments) // method.apply is not a function
    

     method.arguments // undefined
    

    我得到的是[a,b]参数,以便对它们进行验证,但我得到的是Nan。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Bergi    6 年前

    这真是一团糟,但我想你是在找类似的东西

    function add(a, b) {
        return a + b;
    }
    
    function myFunc(fn, args) {
        if (typeof args[0] !== 'number')
            throw new Error('first argument must be a number');
        return fn.apply(null, args);
    }
    
    console.log(myFunc(add, [1, 2]));
    console.log(myFunc(add, [null]));