JavaScript的原型与原型链理解
简单描述了原型与原型链的理解,欢迎学习讨论。
构造函数
function A(){}
原型 构造函数都有prototype原型属性
A.prototype.name = 'wjx'
原型的 constructor属性
console.log(A.prototype.constructor)
实例对象
let B = new A()
实例对象都有__proto__属性,这个属性指向构造函数的原型
console.log(B.__proto__)
几者关系
// 原型与实例对象关系
console.log(A.prototype)//{ name: 'wjx' }
console.log(B.__proto__); //{ name: 'wjx' }
console.log(B.__proto__ === A.prototype);//true
// 原型与构造函数关系
console.log(A.prototype.constructor===A)//true 原型的constructor又指向构造函数
//=============================================================//
// 实例对象与原型的关系
B.name ='wjx123'
console.log(B.name);//wjx123 这里访问到了自己本身的属性
console.log(B.__proto__)//{ name: 'wjx' },他的__proto__指向原型A.prototype.name = 'wjx'
delete B.name //这里在闪吊后,自己的属性就没有了,会访问__proto__
console.log(B.name)//wjx __proto__指向构造函数A的指向原型,
总结:
实例对象先访问自己的属性,如果没有就访问__proto__,
__proto__指向原型,在原型里面找, 如果找不到,就在原型的原型里找,原型的原型是啥呢?对象?。 原型的对象是由构造函数Object()生成的console.log(Object.prototype.__proto__ === null) // true
所以
Object.prototype.proto
的值为 null 跟 Object.prototype 没有原型,其实表达了一个意思。
// 所以查找属性的时候查到 Object.prototype 就可以停止查找了。~~~~~~~~~~~~~~~~这个就是原型链了。。。。。。。。。个人学习理解。如有不对,请大佬纠正。
学习交流扣群儿732278669
JavaScript的原型与原型链理解相关推荐
- 深入理解JavaScript系列(5):强大的原型和原型链
前言 JavaScript 不包含传统的类继承模型,而是使用 prototypal 原型模型. 虽然这经常被当作是 JavaScript 的缺点被提及,其实基于原型的继承模型比传统的类继承还要强大.实 ...
- 理解JavaScript中的原型与原型链
理解JavaScript中的原型与原型链 原型链是一种机制,指的是JavaScript中每个内置的对象都有一个内置的__proto__属性指向创建它的构造函数的prototype(原型)属性.原型链的 ...
- [我的理解]Javascript的原型与原型链
一.原型与原型链的定义 原型:为其他对象提供共享属性的对象 注:当构造器创建一个对象,为了解决对象的属性引用,该对象会隐式引用构造器的"prototype"属性.程序通过const ...
- 真丶深入理解 JavaScript 原型和原型链(二):原型和原型链
原文地址: https://www.jeremyjone.com/745/,转载请注明. 上一篇文章已经总结了关于原型的两个属性,那么接下来所有原型和原型链,乃至后面的继承,都与这两个属性有关系. 原 ...
- 深入理解javascript原型和原型链
文章目录 构造函数 1. new一个新对象的过程,发生了什么? 2. 手写new函数 3. 构造函数上的方法 原型 1. 什么是原型? 2. 原型的作用是什么? 3. 原型中this的指向是什么? 函 ...
- 深入理解javascript之原型和原型链
看到一篇关于原型和原型链很好的文章,一看就懂,分享给大家 什么是原型? 上面的Person.prototype就是原型,它是一个对象,我们也称它为原型对象. . 原型的作用是什么? 原型的作用,就是共 ...
- JavaScript apply 和 call 和 bind,原型和原型链的理解
apply 和 call 改变 this 指向 apply 和 call 都可以让函数或方法调用 apply 第二参数是数组 call 参数是多个值 function f1(x,y){return x ...
- (转)【javascript基础】原型与原型链
原文地址:http://www.cnblogs.com/allenxing/p/3527654.html 前言 原型是什么 理解原型对象 原型对象 isPrototypeOf hasOwnProper ...
- javascript之原型与原型链
前言 了解JavaScript的原型与原型链有助于我们更深层次的理解这门语言,看过很多相关的文章,写的都很好,下面是根据自己的理解,一步步揭开原型与原型链 正文 一.数据类型 在JavaScr ...
最新文章
- 第一个hibernate程序HelloWorldHibernate
- BlogEngine.NET1.2的新功能
- 【GAN优化】详解对偶与WGAN
- SAP职业生涯中12个最致命想法
- 软件项目管理0817:一夜项目管理——把任务进度计划分配给负责人
- troubleshoot之:使用JFR解决内存泄露
- two sum python_Python | Leetcode 之 Two Sum
- 题解 AT5258 【[ABC156A] Beginner】
- ASP.NET3.5下的MSChart图表控件使用
- qnap自带有mysql吗_关于威联通QNAP NAS应用—Container Station 容器套件
- mysql 查询语法基础_入门MySQL——查询语法练习
- -离散数学-期末练习题解析
- C语言实现抽签小功能
- cad断点快捷键_CAD如何打断?CAD打断点和CAD打断命令操作方法
- Task01:熟悉新闻推荐系统的基本流程(数据库设计)
- Easyui--官网
- 图片轮换-jQuery
- 什么是微信SCRM客服系统
- 奈奎斯特与香农定理_大神带你理解奈奎斯特定理和香农定理
- [深入研究4G/5G/6G专题-56]: L3信令控制-5-无线承载DRB管理