代码之家  ›  专栏  ›  技术社区  ›  Exitos

我可以在运行时在javascript中深入研究对象的所有属性吗?

  •  0
  • Exitos  · 技术社区  · 15 年前

    我有一个对象正从一个flash对象传递给一个方法。我希望能够查看这个对象中的所有属性,就像在visual studio中使用“添加监视”功能在c中所做的那样。

    这在javascript和firefox/firebug中可能吗?

    我正在考虑做一个for循环和控制台。记录结果,但什么是迭代对象的最佳方式我会把它当作数组等?

    任何建议都非常感谢。 皮特

    3 回复  |  直到 15 年前
        1
  •  3
  •   Matty F    15 年前
    for (var p in obj) {
        if (obj.hasOwnProperty(p)) {
            console.log(p + ': ' + obj.p);
        }
    }
    

    JavaScript中的对象通过它们的原型继承,它们的原型也可以有一个原型。使用 hasOwnProperty 方法(从对象继承)检查是否在您正在检查的对象上存在该属性,而不与原型关联。

        2
  •  0
  •   Kos    15 年前

    在技术上,JS中的一个对象是+一个关联数组 string->value ,所以。。。。

    for (var key in someObject) {
        // key is a string
        var value = someObject[key];
        // ...
    }
    
        3
  •  0
  •   Orbling    15 年前

    通常你可以使用 for (prop in obj) { } 语法。

    for (var prop in obj) {
       console.log(obj[name]);
    }
    

    在jQuery中有 jQuery.each() 方法,它允许对每个条目进行回调:

    jQuery.each(obj, function(index, prop) {
        console.log(prop);
    });