如何检查javascript对象内部是什么

时间:2010-07-30 07:24:23

标签: javascript

是否有任何方法或方法可以检查JavaScript对象中的内容。像PHP中的print_r这样的东西?

干杯

7 个答案:

答案 0 :(得分:10)

使用适用于Firefox的Firebug或适用于Google Chrome / Safari的开发人员工具来检查您的对象。在我看来,这是最好的方式。

答案 1 :(得分:3)

Javascript对象实际上是键/值对的映射。您可以通过点表示法(例如myObject.someProp)或甚至通过索引表示法(myObject["someProp"])访问成员。使用后者可能会对你有所帮助:

function print(obj) {
    for (var i in obj)
        console.log(i + " - " + obj[i]);
    }
}

通过Firebug运行它,看看你得到了什么:)

答案 2 :(得分:3)

如果您使用Mozilla Firefox,则可以使用Firebug。要查看您的变量或对象是什么,请执行以下代码(例如,我使用JSON变量)

var yourObject = {test: 'this is just a test'};
console.log(yourObject); 

安装Firebug后,运行包含此javascript的html文件,然后在Firebug中选择“控制台”选项卡。你会在那里看到结果。希望这对你有所帮助。 :)

答案 3 :(得分:2)

使用此自定义功能或JSON.stringify(obj);

  /**
   * Gets the string representation of the specified object. This method is
   * used for debugging
   * @param {Object} Object to convert to string
   * @return {String} The string representation of the object
   */
  var toObjectSource = function(obj)   {
     if(obj === null)   {
        return "[null]";
     }
     if(obj === undefined) {
        return "[undefined]";
     }

     var str = "[";
     var member = null;
     for(var each in obj)   {
        try   {
           member = obj[each];
           str += each + "=" + member + ", ";
        }catch(err) {
           alert(err);
        }
     }
     return str + "]";
  }

答案 4 :(得分:1)

考虑以下对象:

var x = {
  property1: 'value1',
  property2: 'value2',
  property3: 'value3',
  method1: function () {
    return 0;
  },
  method2: function () {
    return 0;
  }
};

然后做:

for (var prop in x) {
  console.log(prop);
}

输出:

property1
property2
property3
method1
method2

您可能希望使用hasOwnProperty()方法来确保不从对象的原型链中获取属性:

for (var prop in x) {
  if (x.hasOwnProperty(prop)) {
    console.log(prop);
  }
}

答案 5 :(得分:1)

对我来说最好的伎俩:

console.dir(yourobject);

在Chrome开发工具中查看它。你可以传入任何物体,以找出它内部的膨胀。非常有帮助

答案 6 :(得分:0)

安装FireBug。它是Mozilla Firefox的插件。

在源文件中,写下:console.log(yourObjectGoesHere);并转到FireBug中的“控制台”选项卡... Killer对象发现,以易于掌握的树格式呈现。