迭代对象属性

Ami*_*mir 4 javascript

有没有办法迭代对象属性和方法.我需要写一个像这样的实用函数:

function iterate(obj)
{
    //print all obj properties     
    //print all obj methods
}
Run Code Online (Sandbox Code Playgroud)

所以运行这个功能:

iterate(String);
Run Code Online (Sandbox Code Playgroud)

将打印:

property: lenght
function: charAt
function: concat...
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

six*_*ear 13

应该这么简单:

function iterate(obj) {
    for (p in obj) {
        console.log(typeof(obj[p]), p);
    }
}
Run Code Online (Sandbox Code Playgroud)

注意:该console.log函数假设您使用的是firebug.此时,以下内容:

obj = {
    p1: 1, 
    p2: "two",
    m1: function() {}
};

iterate(obj);
Run Code Online (Sandbox Code Playgroud)

会回来:

number p1
string p2
function m1
Run Code Online (Sandbox Code Playgroud)


Pet*_*ley 6

另一个问题中查看我的答案,但你无法阅读这样的内置属性.