6

有什么方法可以使用控制台查看 JS 对象上可用的方法吗?

我在想这样的事情:

> var myArray = [1,2,3];
  undefined
> myArray
  [1, 2, 3]
> myArray.logme = function() { console.log(this); };
  function () { console.log(this); }
> myArray
  [1, 2, 3]

我第二次键入myArray时,我想看看该logme()方法现在可用的事实。

我想知道答案,以便更轻松地探索不熟悉的 JS 对象。

4

2 回答 2

8

您可以使用

console.dir(myArray);

你会得到一个像这样的可扩展/可检查的显示,包括自定义属性和原型对象:

(来自https://stackoverflow.com/a/14537759/1048572,另请参阅Console.dir 和 console.log 有什么区别?

于 2013-03-06T17:00:18.323 回答
1

如果您在 Chrome 中并且您可以使用类似以下的内容(相当粗略)检查属性是否为function

function showMethods(obj) {
    console.log(Object.keys(obj).filter(function(prop) {
        return typeof el[prop] == 'function';
    }));
}

然后只需按如下方式调用它:

showMethods({a: 1, b: 2, c: function () {}}) // ['c']
showMethods({a: 1, b: 2}) // []
showMethods({a: 1, b: function() {}, c: function () {}}) // ['b', 'c']
于 2013-03-06T14:30:32.913 回答