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

  • 相关阅读:
    jvm内存模型学习
    sparkstreaming容错
    yum命里详解
    rpm包的安装及卸载
    git命令记录
    ElaticSearch基本查询
    入门elaticsearch
    Java网络编程学习(一)
    JAVA多线程之生产消费模型
    Java线程同步详解
  • 原文地址:https://www.cnblogs.com/zhilingege/p/7841590.html
Copyright © 2011-2022 走看看