zoukankan      html  css  js  c++  java
  • Object.keys()返回对象自身可枚举属性组成的数组

    Object.keys()方法是对一个对象的key遍历,会把key组成一个数组返回
    示例:
    // 参数为数组时,返回的是数组的索引
    let arr1 = [1, 2, '3']
    console.log(Object.keys(arr1)) // (3)["0", "1", "2"]
    
    let arr2 = [1, 2, '3', 'p', 're']
    console.log(Object.keys(arr2)) // (5)["0", "1", "2", "3", "4"]
    
    // 参数为对象,返回的是对象的key属性
    let obj1 = {
      name: 'jack',
      age: 16,
      height: 178
    }
    console.log(Object.keys(obj1)) // (3)["name", "age", "height"]
    
    let obj2 = {
      name: 'jack',
      age: 16,
      hello: function () {
        console.log('hello')
      }
    }
    console.log(Object.keys(obj2)) // (3)["name", "age", "hello"]
    
    // Object.keys()只能返回对象的可枚举属性,不可枚举的不能返回
    let obj3 = {
      name: 'jack',
      age: 16,
      hello: function () {
        console.log('hello')
      }
    }
    // Object.defineProperty(obj, key, property)给对象设置属性或修改属性,obj设置的对象,key需要新增或修改的属性,propert属性配置值
    Object.defineProperty(obj3, 'hobby', {
      value: 'printer',
      enumerable: false // enumerable设置对象的属性是否可枚举,默认为true,
    })
    console.log(obj3, Object.keys(obj3))
    // {name: "jack", age: 16, hello: ƒ, hobby: "printer"}
    // (3)["name", "age", "hello"]
    
    // 如果参数不是一个对象,在es2015会强制转换为对象,在之前版本会报错
    let string = 'foo'
    console.log(Object.keys(string)) // (3)["0", "1", "2"]
    
    // 如果需要返回对象的全部属性(包括可枚举和不可枚举)可以使用Object.getOwnPropertyNames()方法
    // Object.getOwnPropertyNames()方法根据字面意义就是返回对象自身全部属性名
    let obj3 = {
      name: 'jack',
      age: 16,
      hello: function () {
        console.log('hello')
      }
    }
    Object.defineProperty(obj3, 'hobby', {
      value: 'printer',
      enumerable: false
    })
    console.log(obj3, Object.getOwnPropertyNames(obj3))
    // {name: "jack", age: 16, hello: ƒ, hobby: "printer"}
    // (4)["name", "age", "hello", "hobby"]
  • 相关阅读:
    通用客户端脚本
    刷一次变一次图的ASP代码
    ASP公共翻页代码
    Web中模态对话框加载后根据加载内容动态改变其大小并使其居中
    创建一个ASP通用分页类
    各大门户网站FLASH广告完全揭密
    插入记录后,获取记录的ID
    ASP实用函数库
    Sametime 8.5.1系统环境要求
    推荐:IBM Lotus Domino 8.5 服务器管理入门手册(适用初学者)
  • 原文地址:https://www.cnblogs.com/steamed-twisted-roll/p/10913408.html
Copyright © 2011-2022 走看看