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。

  • 相关阅读:
    FOAT、SOAT、OAT
    autosar mcal之启动代码
    华为2020操作系统相关链接openeuler
    CCP/XCP
    autosar资料(持续更新。。。)
    liteos相关源码资料
    autosar学习之通信栈
    Autosar COM层发送模式选择(信号发送属性和I-PDU发送模式)
    统一诊断服务 (Unified diagnostic services , UDS)
    Linux路由器及交换机工作原理
  • 原文地址:https://www.cnblogs.com/wang-jiang/p/4472408.html
Copyright © 2011-2022 走看看