当前位置:首页 > 开发 > Web前端 > 前端 > 正文

Object.prototype.propertyIsEnumerable

发表于: 2015-11-13   作者:互联网   来源:转载   浏览:
摘要: 语法: obj.propertyIsEnumerable(prop); 此方法返回一个布尔值,表明指定的属性名是否是当前对象可枚举的自身属性。 1.如果是用户自定义了对象的属性,将返回true,比如 var o = {}; o.prop = '我是个可枚举属性'; o.fn = function(){}; //用户自定义属性 console.log(o.propertyI

语法:

obj.propertyIsEnumerable(prop);

此方法返回一个布尔值,表明指定的属性名是否是当前对象可枚举的自身属性。

1.如果是用户自定义了对象的属性,将返回true,比如

var o = {};



o.prop = '我是个可枚举属性';

o.fn = function(){};



//用户自定义属性

console.log(o.propertyIsEnumerable('prop'));//true

console.log(o.propertyIsEnumerable('fn'));//true

用for in遍历一下o对象,结果为:

for(var property in o){

    console.log(property);

}

//prop fn

2.如果是自定义类型的情况

function Dog(name){

    this.name = name;

}

Dog.prototype.sayName = function(){

    var some = this.name;

}

var dog = new Dog('huang');

console.log(dog.propertyIsEnumerable('name')); //true 'name'-->来自Dog类型的构造函数

console.log(dog.propertyIsEnumerable('sayName'));//false 'sayName'-->继承自Dog类型

用for in 遍历一下dog对象,结果为:

for(var property in dog){

    console.log(property);

}//name sayName

sayName能遍历出来,但是他不是dog自身的属性。

3.如果是内置对象属性或者是继承属性

var ob = {};
console.log(Math.propertyIsEnumerable('random'));//false  内置属性
console.log(window.propertyIsEnumerable('name'));//true 内置属性 console.log(ob.propertyIsEnumerable('constructor'));//false constructor-->继承Object原型对象属性

4.如果是动态增加Object原型对象属性

var obj = {};

Object.prototype.Color = 'green';

console.log(obj.propertyIsEnumerable('Color'));//false 

Color是继承的属性,所以为false。

Object.prototype.propertyIsEnumerable

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号