zoukankan      html  css  js  c++  java
  • javascript 对象 构造函数 原型 constructor 属性

     
    8-1 展示了 Person 构造函数、Person 的原型对象和 Person 现有两个实例之间的关系。注意,
    Person.prototype 指向原型对象,而 Person.prototype.contructor 指回 Person 构造函数。原
    型对象包含 constructor 属性和其他后来添加的属性。Person 的两个实例 person1 和 person2 都只
    有一个内部属性指回 Person.prototype,而且两者都与构造函数没有直接联系。另外要注意,虽然这两
    个实例都没有属性和方法,但 person1.sayName()可以正常调用。这是由于对象属性查找机制的原因。
    虽然不是所有实现都对外暴露了[[Prototype]],但可以使用 isPrototypeOf()方法确定两个对
    象之间的这种关系。本质上,isPrototypeOf()会在传入参数的[[Prototype]]指向调用它的对象时
    返回 true,如下所示:
    console.log(Person.prototype.isPrototypeOf(person1)); // true
    console.log(Person.prototype.isPrototypeOf(person2)); // true 
    这里通过原型对象调用 isPrototypeOf()方法检查了 person1 和 person2。因为这两个例子内
    部都有链接指向 Person.prototype,所以结果都返回 true。
    ECMAScript 的 Object 类型有一个方法叫 Object.getPrototypeOf(),返回参数的内部特性
    [[Prototype]]的值。例如:
    console.log(Object.getPrototypeOf(person1) == Person.prototype); // true
    console.log(Object.getPrototypeOf(person1).name); // "Nicholas"
    第一行代码简单确认了 Object.getPrototypeOf()返回的对象就是传入对象的原型对象。第二
    行代码则取得了原型对象上 name 属性的值,即"Nicholas"。使用 Object.getPrototypeOf()可以
    方便地取得一个对象的原型,而这在通过原型实现继承时显得尤为重要(本章后面会介绍)。
     
  • 相关阅读:
    自定义Toast
    kafka概念扫盲
    ZooKeeper面试题
    写给程序员儿子的一封信
    hashCode() 和 equals()的问题解答及重写示范
    git下载安装、配置及idea初始化
    配置 git公钥报错:unknown key type -rsa
    Java中的各种锁
    Kafka 基本原理
    MySQL 索引总结
  • 原文地址:https://www.cnblogs.com/zy09/p/14680909.html
Copyright © 2011-2022 走看看