• Object.keys——Object.getOwnPropertyNames——对象.hasOwnProperty


    1.

     


    // console.log(Object.keys(p.prototype)) // 报错
    console.log(Object.keys(p))
    //['x', 'y']
    console.log(Object.keys(Point.prototype))
    //['fun1', 'fun2']
    console.log(Object.getOwnPropertyNames(Point.prototype))
    //['constructor', 'add', 'age', 'fun1', 'fun2']
    console.log(Object.getOwnPropertyNames(p))
    //['x', 'y']
    console.log(Object.getOwnPropertyNames(new Point(3,4)))
    //['x', 'y']
    console.log(p.hasOwnProperty("x"))
    //true
    console.log(p.hasOwnProperty("y"))
    //true
    console.log(p.hasOwnProperty("z"))
    //false

    class Point {
        constructor(x, y) {
            this.x = x;
            this.y = y;
        }
        add(a, b) {
            return a + b
        }
        get age() {
            return this._age;
        }
        //     set age(x){
        //       this._age = x;
        //     }
    
    }
    var z = 4;
    Object.assign(Point.prototype, {
        fun1() {},
        z
    
    });
    Point.prototype.fun2 = function() {}
    
    var p = new Point(1,2);

      //console.log(Object.getOwnPropertyNames()) //必须传参

    // console.log(Object.keys(p.prototype)) // 报错
    console.log(Object.keys(p))
    //['x', 'y']
    console.log(Object.keys(Point.prototype))
    //['fun1', 'fun2']
    console.log(Object.getOwnPropertyNames(Point.prototype))
    //['constructor', 'add', 'age', 'fun1', 'fun2']
    console.log(Object.getOwnPropertyNames(p))
    //['x', 'y']
    console.log(Object.getOwnPropertyNames(new Point(3,4)))
    //['x', 'y']
    console.log(p.hasOwnProperty("x"))
    //true
    console.log(p.hasOwnProperty("y"))
    //true
    console.log(p.hasOwnProperty("z"))
    //false
    
    p.age = 100
    console.log(p.age)
    //使用set age(x){}才能取到值
    console.log(p.z)
    //4
  • 相关阅读:
    ES6 promise 常用方法介绍
    js判断元素是否在可视区域里
    alert之后才执行
    jquery总结和注意事项
    java中unicode和中文相互转换
    html href页面跳转获取参数
    myBatis批量添加实例
    mybatis中返回自动生成的id
    遍历map的四种方法
    MyBatis魔法堂:Insert操作详解(返回主键、批量插入)
  • 原文地址:https://www.cnblogs.com/sunupo/p/15539267.html
Copyright © 2020-2023  润新知