• 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()可以
    方便地取得一个对象的原型,而这在通过原型实现继承时显得尤为重要(本章后面会介绍)。
     
  • 相关阅读:
    Java 实现常见内排序
    markdown基本语法
    HashMap (JDK1.8) 分析
    jQuery总结
    JS 数组 常用方法
    CSS样式 解决文字过长显示省略号问题
    Python中的 __name__属性的含义和作用
    http协议详细介绍
    Http和Https的区别
    爬虫——requests库使用方法
  • 原文地址:https://www.cnblogs.com/zy09/p/14680909.html
Copyright © 2020-2023  润新知