判断对象属性的几种方法

{this.name = ‘Lee’;this.age = 20;this.sayName = function() {console.log(this.name)};}Person.prototype.height = 180; var p = new Person();判断属性hasOwnProperty(property_name)

检测一个属性书否存在于实例中,如果是则返回true。

p.hasOwnProperty(“name”);// truep.hasOwnProperty(“height”);// falsein

能够通过对象访问给定属性时返回true,无论该属性存在于实例中还是原型中。

p;// true获取属性获取所有可枚举属性for-in

返回所有能够通过对象访问的、可枚举的属性,其中既包括存在于实例中的属性,也包括存在于原型中的属性。 覆盖原型属性的自定义属性也将返回,不论是否标记为可枚举。

for(var i in p) {console.log(i);}获取实例属性Object.keys()

接收一个对象做参数,返回一个包含所有可枚举的实例属性的字符串数组。

Object.keys(p);// [“name”, “age”, “sayName”]Object.getOwnPropertyNames()

接收一个对象为参数,获取对象所有实例属性的字符串数组 ,,无论它是否可枚举。

Object.getOwnPropertyNames(p);// [“name”, “age”, “sayName”]原型属性

JavaScript中没有单独判断和获取对象原型属性的方法,但是我们可以通过前面的方法组合实现。

判断原型属性

通过组合hasOwnProperty()方法和in操作符,就可以区分该属性是否存在于原型中。

{return !obj.hasOwnProperty(name) && (name in obj);}hasOwnPrototype(p, “name”);// falsehasOwnPrototype(p, “height”);// true获取原型属性

通过组合for-in循环与hasOwnProperty()方法输出对象的原型属性。

for(var i in p) {!p.hasOwnProperty(i) && console.log(i);}// height

通过在原型对象上执行for-in循环。

for(var i in Person.prototype) {console.log(i);}// height

通过传递对象原型做参数给Object.keys()方法。

Object.keys(Person.prototype);// [“height”]总结实例属性

判断实例属性使用对象的hasOwnProperty()方法。或取对象实例属性使用Object.keys()或Object.getOwnPropertyNames()方法。

实例属性和原型属性

使用in操作符判断某个属性是否存在于对象的实例或原型中。使用for-in循环输出对象所有可枚举的实例属性与原型属性。

infor-in原型属性

通过组合hasOwnProperty()方法和in操作符,区分原型属性。通过传递对象原型给for-in循环或Object.keys()方法获取原型属性。

巨龟千岁,却也平淡无奇;昙花瞬间,却能绚丽无比。

判断对象属性的几种方法

相关文章:

你感兴趣的文章:

标签云: