美文网首页
循环Object的方法能否循环是否可枚举属性,能否循环是否原型的

循环Object的方法能否循环是否可枚举属性,能否循环是否原型的

作者: keknei | 来源:发表于2019-06-04 16:22 被阅读0次

    我们先定义一个对象,这个对象有原型上的属性,有不可枚举属性,有可枚举属性

    let obj={
      name:"andy",
      age:18
    };
    obj.__proto__.job="hehe";
    Object.defineProperty(obj,"sex",{
      enumerable:false
    });
    

    for in可以循环出所有的可枚举属性,不管是不是原型上的

    for(let name in obj){
      console.log(name);//name age job
    }
    

    Object.keys只能循环出自身的可枚举属性

    let name=Object.keys(obj);
    console.log(name);//["name", "age"]
    

    getOwnPropertyNames返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性但不包括Symbol值作为名称的属性)组成的数组

    let arr=Object.getOwnPropertyNames(obj);
    console.log(Object.getOwnPropertyNames(obj));//["name", "age", "sex"]
    

    相关文章

      网友评论

          本文标题:循环Object的方法能否循环是否可枚举属性,能否循环是否原型的

          本文链接:https://www.haomeiwen.com/subject/uiqrxctx.html