带你了解原型链

news/2024/11/17 21:31:29/

了解原型链可以先看我上期发布的帖子再来看这篇会更好的理解:

详解原型对象_loulansd的博客-CSDN博客

问:什么是原型链?

得先知道什么是对象,比如一个物品一只笔就是对象,他的属性可以是黑色彩色的它的方法可以是写字,包括我们生活的万物都有自身的属性,那么我们就可以理解万事万物都是对象所以就有了万物皆对象

同样在我们js里面也是万物皆是对象,但是js中的对象不是孤立的,对象是由继承关系的,子元素可以继承父元素的属性

上期帖子讲到每个实例对象都会有个原型对象所以就得出下面的结论

答:原型链 : 每一个实例对象都有自己的原型,而原型也是对象,也有自己的原型。以此类推,形成链式结构,称之为原型链。

这样不怎么好理解我们看个图:

其实构造函数到实例对象还有一条线的,但是实例对象就是new创建出来的,所以我就没必要画了

可以看看网友画的,但是感觉没有我的清晰哈哈

问: 为什么最上层为null呢?

答:因为万物皆空

我们可以log查看一下是不是这个结果

console.log( box.__proto__.__proto__.__proto__ )

当我们访问对象的一个属性或方法时,它会先在对象自身中寻找,如果有则直接使用,如果没有则会去原型对象中寻找,如果找到则直接使用。如果没有则去原型的原型中寻找,直到找到Object对象的原型,Object对象的原型没有原型,如果在Object原型中依然没有找到,则返回undefined。

原型链访问规则:  就近原则

        对象优先访问自己的成员,然后一层一层找

原型链作用: 继承

        几乎所有框架的底层都是用原型链实现的

难免有疏漏,如有错误欢迎指正


http://www.ppmy.cn/news/484828.html

相关文章

原型和原型链(二)

文章目录 前言一、_proto_(上文提到)1、定义:2、小测试: 二、原型链1、定义及相关解释:2、原型链图: 前言 在上篇文章中对构造函数和原型对象进行了相应的总结。此文章将会对原型链进行详细的阐述。希望大家对原型和原型链的理解…

原型链的解说

首先,我们要知道,万物皆对象,一切的一切都是由对象构成的。 一、关于函数的原型对象 在JavaScript中,如果我们创建一个函数A,那么浏览器就会在内存空间里创建一个对象B,而且每个函数都会默认会有一个属性…

【js进阶】-原型/原型链

一、构造函数创建对象 我们先使用构造函数创建一个对象,先来认识下构造函数 function Person() { } var person1 new Person(); person1.name 张三; console.log(person1.name) // 张三在这个例子中,Person 就是一个构造函数,我们使用 ne…

JS原型、原型链到底是什么?

前言 在js的学习中,原型毫无疑问是一个难点,但也是一个不可忽视的重点。在前端面试中也是一个高频考题,在接下来的深入学习中,你会发现原型、原型链等知识点其实并不难。 1. “一切皆为对象” JavaScript是一个面向&#xff08…

原型及原型链 ①

文章目录 原型及原型链函数对象constructor 构造函数new 操作符将构造函数当作函数构造函数的问题prototype 原型理解原型对象更简单的原型语法原型的动态性原生对象的原型原型对象的问题构造函数和原型结合构造函数和原型结合 __proto__原型链关卡 本文转:https://…

原型原型链深度解析

原型 原型是函数特有的,构造函数制造出对象的公共祖先。通过该构造函数产生的对象,可以继承该原型的属性和方法。 我们先写一个构造函数 function Person() {} var person new Person(); person.name luoxi; console.log(person.name) // luoxi在这…

原型,原型链,原型的继承

原型的作用? 1.节省内存空间 2.实现数据共享(继承) 什么是原型? 任何一个函数都有propotype属性,它本身是一个对象,我们称之为原型 构造函数,实例化对象与原型之间的关系? 1.任何一个函数都有prototype属性,它本身是一个对象,我们称之为原型 2.构造函数也是函数,也都…

原型和原型链详细讲解

目录 一、构造函数 二、原型对象 三、原型链 四、函数也是一种对象 五、总结 一、构造函数 构造函数、普通函数区别,使用new关键字创建对象的函数叫构造函数。构造函数的首字母一般是大写,用以区分普通函数。 function Person(name, age) {this.nam…