/ / Jak uzyskać wszystkie możliwe metody, które można wywołać na zmiennej w js (włączając zmienne inne niż obiekty) - javascript, debugging, runtime

Jak uzyskać wszystkie możliwe metody, które można wywołać na zmiennej w js (włączając zmienne inne niż obiekty) - javascript, debugging, runtime

Dla celów debugowania, chciałbym wiedzieć (w czasie wykonywania) wszystkie możliwe metody, które mogę wywołać dla konkretnej zmiennej js.

Można to zrobić w konsoli Chrome (i innych), ale ja lubię metodę javascript, która daje mi tablicę z ciągami nazw wszystkich metod, które można wywołać na zmiennej.

Jeśli użyjesz "for..in" lub Object.keys, nie dostaniemy całej metody! (Jeśli wywołasz je w zmiennej zawierającej liczbę, to nie zawiera ona metod zdefiniowanych w Number.prototype!)

Jakieś pomysły?

Odpowiedzi:

0 dla odpowiedzi № 1

W porządku dla innych, którzy mają ten sam problem, skończyłem pisać tę metodę.

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;
};