List of global user defined functions in JavaScript?

后端 未结 3 1955
南方客
南方客 2020-11-30 06:28

Is it possible to get a list of the user defined functions in JavaScript?

I\'m currently using this, but it returns functions which aren\'t user defined:

<         


        
相关标签:
3条回答
  • 2020-11-30 06:54

    As Chetan Sastry suggested in his answer, you can check for the existance of [native code] inside the stringified function:

    Object.keys(window).filter(function(x)
    {
        if (!(window[x] instanceof Function)) return false;
        return !/\[native code\]/.test(window[x].toString()) ? true : false;
    });
    

    Or simply:

    Object.keys(window).filter(function(x)
    {
        return window[x] instanceof Function && !/\[native code\]/.test(window[x].toString());
    });
    

    in chrome you can get all non-native variables and functions by:

    Object.keys(window);
    
    0 讨论(0)
  • 2020-11-30 06:58

    Using Internet Explorer:

    var objs = [];
    var thing = {
      makeGreeting: function(text) {
        return 'Hello ' + text + '!';
      }
    }
    
    for (var obj in window){window.hasOwnProperty(obj) && typeof window[obj] === 'function')objs.push(obj)};
    

    Fails to report 'thing'.

    0 讨论(0)
  • 2020-11-30 07:18

    I'm assuming you want to filter out native functions. In Firefox, Function.toString() returns the function body, which for native functions, will be in the form:

    function addEventListener() { 
        [native code] 
    }
    

    You could match the pattern /\[native code\]/ in your loop and omit the functions that match.

    0 讨论(0)
提交回复
热议问题