zoukankan      html  css  js  c++  java
  • 原型相关的方法isPrototypeOf、Object.getPrototypeOf、hasOwnProperty、Object.getOwnPropertyName、Object.keys

      在看《高程3》第六章的《面向对象的程序设计》的原型那一节时,有一下5个函数,功能较为接近,但是又都很基础,很重要

      所以在此,加以说明,以便日后复习

      function Person(){this.age = 100}
      var person1 = new Person;

    ①isPrototypeOf()

      Person.prototype.isPrototypeOf(person1);  //true

    ②Object.getPrototypeOf()

      alert(Object.getPrototypeOf(person1) == Person.prototype)  //true

    ③hasOwnProperty()  //判断属性是否是存在于自己的实例中,如果是:返回true,如果仅仅存在自己的原型总,则返回false

      person1.hasOwnProperty("age");  //fales  因为age是原型的属性,而不是自己实例的属性

    ④Object.keys()  //如果你想要获得所有实例属性,并仅需可枚举的,可以使用这个方法  其实和for in遍历出来的是一样的

      var keys = Object.keys(Person.prototype);
      alert(keys);  //"age"


    ⑤Object.getOwnPropertyName()  //如果你想要获得所有实例属性,无论他是否可枚举,可以使用这个方法

      var keys = Object.getOwnPropertyNames(Person.prototype);
      alert(keys);  //"constructor, age"

    所有开发者定义的属性,均是可枚举的;

    不可枚举的属性有: toLocaleString()、toString()、valueOf()、hasOwnProperty()、propertyIsEnumerable()  es5将constructor和prototype的 [ [ Enumerable ] ] = false ,即可枚举属性设置为了 false

  • 相关阅读:
    EF6(CodeFirst)+MySql开发遇到的坑
    Entity Framework mvc Code First data migration
    SQL 修改排序规则的问题 sql_latin1_general_cp1_ci_as
    sql 与linq的转换
    Entity Framework的事务提交
    .net Quartz 服务 作业调度
    如何插上U盘 自动复制内容
    SQL学习之--触发器
    原生javascript与jquery 的比较
    原生javascript学习
  • 原文地址:https://www.cnblogs.com/zhilingege/p/7841590.html
Copyright © 2011-2022 走看看