美文网首页
JS原型链总结

JS原型链总结

作者: 悠然望剑 | 来源:发表于2018-08-03 16:39 被阅读0次

原型链总结:

function  Person(){ }

var p1 = new Person();

var o1 = new Object();

1、只有构造函数有原型对象,即只有Person.prototype才有意义,还有诸如内置构造函数Number.prototype 、Boolean.prototype等

2、对象都有__proto__属性,这个属性指向构造函数的原型对象,即

p1.__proto__ === Person.prototype;   //p1构造器是Person

o1.__proto__  ===  Object.prototype;    //o1构造器是Object

Person.prototype.__proto__ === Object.prototype;      //Person.prototype代表Person的原型对象,原型对象本质还是对象,构造器是Object

Person.__proto__ === Function.prototype;     //Person是构造函数对象,构造器是Function

Object.prototype.__proto__ === null;     //规定,保证原型链能正常结束

3、原型链只存在于实例对象和其构造函数的原型对象之间,不存在于实例和构造函数之间

Person.prototype.name = 'Lily';

console.log(p1.name);      //Lily

console.log(Person.name);   //undefined

4、原型链是以__proto__形成,而不是prototype,例

function Car(price){

    this.price = price;

}

Car.prototype.type = 'SUV';

var c = new Car(100);

console.log(c.price);       //100    因为构造函数中的this代表当前对象,所以构造函数中已经定义实例对象的price属性值等于传入的参数

console.log(c.type);     //SUV   由于构造函数中没有定义type属性,所以去检查c.__proto__中是否有type属性,而c.__prototype__ === Car.prototype,一看,有了,c.type === c.__proto__.type === Car.prototype.type;假如c.__proto__依然没有定义type属性,那就继续往上检查c.__proto__.__proto__中是否有,即Car.prototype.__proto__,亦即Object.prototype;继续往上,就到了Object.prototype.__proto__ = null,这就到头了,检查结束 ^-^

相关文章

  • 再来看一次JS继承

    原型链继承 理解原型链的概念 用一张图来理解原型链再合适不过了。 总结概括JS红宝书上对原型链的概念:每个函数都有...

  • 廖雪峰JS小记

    (function(){})() 原型,原型链 浅谈Js原型的理解JS 原型与原型链终极详解 对象 对象:一种无序...

  • 5-1 从基础知识到JSWebAPI

    回顾js基础知识 JS-web-API 总结 回顾js基础知识 变量类型和计算 原型和原型链 闭包与作用域 异步和...

  • JS的__proto__和prototype

    最近在回顾JS的原型和原型链的知识,熟悉JS的同学都知道JS的继承是靠原型链实现的,那跟原型链相关的属性__pro...

  • Javascript(三)之原型继承理解

    进阶路线 3 原型继承 3.1 优秀文章 最详尽的 JS 原型与原型链终极详解 一 最详尽的 JS 原型与原型链终...

  • JS原型链总结

    原型链总结: function Person(){}var p1 = new Person();var o1 = ...

  • js 原型链总结

    https://blog.csdn.net/m0_37589327/article/details/7865503...

  • 前端面试必问总结

    前言 本文用于总结个人在工作期间总结的一些面试题 题目列表 js的函数声明 js的原型链 js的闭包 js的Pro...

  • 从实现角度分析js原型链

    从实现角度分析js原型链 欢迎来我的博客阅读:《从实现角度分析js原型链》 网上介绍原型链的优质文章已经有很多了,...

  • JS原型链

    1什么是JS原型链? 通过__proto__属性将对象与原型对象进行连接. 1.1 JS原型链的作用? 组成的一个...

网友评论

      本文标题:JS原型链总结

      本文链接:https://www.haomeiwen.com/subject/tvzyvftx.html