zoukankan      html  css  js  c++  java
  • Object.prototype.propertyIsEnumerable

    语法:

    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。

  • 相关阅读:
    hdu 4801模拟题
    ASP.NET程序中动态修改web.config中的设置项目(后台CS代码)
    缓存依赖语句
    ajax post提交数据, input type=submit 返回prompt aborted by user
    JQuery Ajax调用asp.net后台方法
    ASP.NET Cache
    c#字符串及数组操作
    C#字符串与char数组互转!
    c# equals与==的区别
    如何将DataTable转换成List<T>呢?
  • 原文地址:https://www.cnblogs.com/wang-jiang/p/4472408.html
Copyright © 2011-2022 走看看