zoukankan      html  css  js  c++  java
  • enumerable 可枚举 属性

    一个对象的可枚举属性会在for...in中被访问到 (或是类似的迭代方法, Object.keys()

    如果一个属性不是可枚举的,循环会忽略这个属性

    var obj = { key: 'val' };
    
    console.log('toString' in obj); // true
    console.log(typeof obj.toString); // "function"
    
    for (var key in obj)
        console.log(key); // "key"

    可枚举属性很重要,因为对象有很多属性,尤其是继承来的:

    console.log(Object.getOwnPropertyNames(Object.prototype));
    // ["constructor", "toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", /* etc. */]

    这些属性都存在于object上:

    console.log('constructor' in foo); // true
    console.log('toString' in foo);    // true
    // etc.

    但是他们会在for...in中被跳过 因为他们不是可枚举的

    var descriptor = Object.getOwnPropertyDescriptor(Object.prototype, 'constructor');
    
    console.log(descriptor.enumerable); // false

     
  • 相关阅读:
    二进制编译http
    http服务
    FTP服务
    DAY01
    直流电机调速作业
    机械大楼电梯控制项目
    仿真作业
    第六周作业
    第五周作业
    第四周仿真作业
  • 原文地址:https://www.cnblogs.com/eret9616/p/11759588.html
Copyright © 2011-2022 走看看