如何获取可以在js中的变量上调用的所有可能方法(包括非对象变量,如数字)

How to get all possible methods that can be called on a variable in js (including non object varibles like a number)

出于调试目的,我想知道(在运行时)我可以调用特定 js 变量的所有可能方法。

这可以在 Chrome 控制台(和其他控制台)中完成,但我喜欢 javascript 方法,它给我一个数组,其中包含可以在多变的。

如果您使用 "for..in" 或 Object.keys,我们不会获取所有方法! (如果您在包含数字的变量上调用它们,它不包括 Number.prototype 中定义的方法!)

有什么想法吗?

好的,对于遇到同样问题的其他人,我最终写了这个方法。

var getKeys = function(obj){
    var keys = [], k;
    if (typeof obj !== "object" && typeof obj !== "function" || obj === null) {
        //primitive
    }else{
        for (k in obj){
            if(keys.indexOf(k) === -1){
                keys.push(k);           
            }
        }
    } 
    var type = Object.prototype.toString.call(obj).slice(8, -1);
    var prototype_keys = Object.getOwnPropertyNames(window[type].prototype);
    for (k = 0; k<prototype_keys.length;k++){
        if(keys.indexOf(prototype_keys[k]) === -1){
            keys.push(prototype_keys[k]);
        }
    }
    return keys;
};