如何查看javascript object对象的所拥有的属性值

JavaScript09

如何查看javascript object对象的所拥有的属性值,第1张

第一种,alert,也是最原始的用for循环逐一读取obj的数据然后alert或者展示到页面的dom元素内。第二种,控制台输出console.log(obj),然后按f12打开调试面板然后切换到控制台标签查看,但是ie下不能查看到具体的值。第三种,添加监视按F12打开调试面板然后切换到调试(脚本)标签,然后找到你要查看的obj代码,然后在这一行打一个断点,然后点击按钮(其他能触发代码运行到这里的操作都行)然代码运行到这里,然后右键obj这个变量添加监视然后查看obj属性。第四种,全局变量在你要查看obj变量的代码位置后加上window.temp_obj = obj然后按F12打开调试界面,接着打开控制台标签,然后输入temp_obj再输入.看提示有哪些属性,然后输入temp_obj.attrName按回车看指定属性的名称,或者直接输入temp_obj按回车查看。其他的不多说,但大体都是这些衍生出来的调试方法,具体怎么运用视情况而定。

JavaScript 原生提供Object对象(注意起首的O是大写),JavaScript 的所有其他对象都继承自Object对象,即那些对象都是Object的实例。

Object本身是一个函数,可以当作工具方法使用,将任意值转为对象。这个方法常用于保证某个值一定是对象。

Object函数的参数是各种原始类型的值,转换成对象就是原始类型值对应的包装对象。

如果Object方法的参数是一个对象,它总是返回该对象,即不用转换。

利用这一点,可以写一个判断变量是否为对象的函数。

function isObject (value) {

    returnvalue ===Object(value)

}

isObject([])// true

isObject(true)// false

Object不仅可以当作工具函数使用,还可以当作构造函数使用,即前面可以使用new命令。

Object构造函数的首要用途,是直接通过它来生成新对象。

注意,通过var obj = new Object()的写法生成新对象,与字面量的写法var obj = {}是等价的。或者说,后者只是前者的一种简便写法。

varo1 = {a:1}

varo2 = new Object(o1)

o1 === o2// true

var obj =new Object(123)

obj instanceof Number// true

虽然用法相似,但是Object(value)与new Object(value)两者的语义是不同的,Object(value)表示将value转成一个对象,new Object(value)则表示新生成一个对象,它的值是value。

所谓“静态方法”,是指部署在Object对象自身的方法。

1、Object.keys(),Object.getOwnPropertyNames()

    对于一般的对象来说,Object.keys()和Object.getOwnPropertyNames()返回的结果是一样的。只有涉及不可枚举属性时,才会有不一样的结果。Object.keys方法只返回可枚举的属性(详见《对象属性的描述对象》一章),Object.getOwnPropertyNames方法还返回不可枚举的属性名。

    由于 JavaScript 没有提供计算对象属性个数的方法,所以可以用这两个方法代替。

    var obj = {p1:123,p2:456}

    Object.keys(obj).length// 2

    Object.getOwnPropertyNames(obj).length// 2

     一般情况下,几乎总是使用Object.keys方法,遍历对象的属性。

2、其他方法

除了上面提到的两个方法,Object还有不少其他静态方法,将在后文逐一详细介绍。

(1)对象属性模型的相关方法

Object.getOwnPropertyDescriptor():获取某个属性的描述对象。

Object.defineProperty():通过描述对象,定义某个属性。

Object.defineProperties():通过描述对象,定义多个属性。

(2)控制对象状态的方法

Object.preventExtensions():防止对象扩展。

Object.isExtensible():判断对象是否可扩展。

Object.seal():禁止对象配置。

Object.isSealed():判断一个对象是否可配置。

Object.freeze():冻结一个对象。

Object.isFrozen():判断一个对象是否被冻结。

(3)原型链相关方法

Object.create():该方法可以指定原型对象和属性,返回一个新的对象。

Object.getPrototypeOf():获取对象的Prototype对象。

除了静态方法,还有不少方法定义在Object.prototype对象。它们称为实例方法,所有Object的实例对象都继承了这些方法。