原型,原型链

简介: 原型,原型链

前言

带你快速了解原型,原型链。


一、原型

1.什么是原型

函数都有prototype属性,这个属性指向的是一个对象,称之为原型(也称原型对象)。

原型对象也有个constructor属性指向它的构造函数。

Student类里的student()构造函数有个prototype属性其指向Student.prototype这个对象,即原型对象,通过student()构造函数实例化的对象student1有个__proto__属性,也指向Student.prototype这个原型对象。

2.隐式原型、显示原型

  • 通过prototype属性指向的对象是显示对象
  • 通过__proto__属性指向的对象是隐式对象:
    上述的Student实例化n个对象:student1,studen2......等,其__proto__属性都指向同一个Student.prototype对象,即student1.__proto__===student2.__proto__===Student.prototype

3.原型的作用

  • 存放一些属性方法,共享给实例对象使用。(即数据共享,节约内存空间)
  • 实现继承

二、原型链

什么是原型链

对象都有__proto__属性,这个属性指向它的原型对象,原型对象也是对象,也有__proto__属性,指向原型对象的原型对象,这样一层层形成的链式结构成为原型链,最顶层找不到则返回null。

补充说明

在JavaScript中,函数都可以看作是Function()的实例,所以函数的构造函数是Function()。而且Function()本身自己也是函数。

Student.constructor===Function
  Function.constrctor===Function
  Object.constrctor===Function
  Student.__proto__===Object.__proto__===Function.__proto__===Function.prototype

总结

以上就是原型、原型链的讲解。

相关文章
|
区块链 数据安全/隐私保护 缓存
带你读《深入理解以太坊》之三:技术架构
这是一本从原理和实践两个层面系统、深入讲解以太坊技术的专著,从设计理念、技术架构、共识算法、智能合约、以太坊虚拟机、开发工具、DApp开发、企业以太坊解决方案、跨链技术等近10个方面进行了详细讲解,既适合初学者系统学习以太坊的原理和应用开发,又适合有一定基础的开发者深入掌握以太坊的底层运行机制。
|
监控 安全 网络安全
状态检测防火墙
【8月更文挑战第17天】
1393 3
|
存储 移动开发 NoSQL
Redis - 原理篇-2
Redis - 原理篇-2
263 0
Redis - 原理篇-2
|
安全 API UED
鸿蒙特效教程05-鸿蒙很开门
本教程适合HarmonyOS初学者,通过简单到复杂的步骤,通过层叠布局 + 动画,一步步实现这个"鸿蒙很开门"特效。
384 0
鸿蒙特效教程05-鸿蒙很开门
|
前端开发 JavaScript UED
JavaScript 中的函数防抖与节流详解及实用场景
在前端开发中,处理用户频繁触发的事件,如输入框的输入、按钮点击、窗口调整大小等,常常需要优化性能以减少无效操作。为此,函数防抖(debounce)和函数节流(throttle)是两种常见的性能优化手段。本文将详细介绍两者的区别与实现,并探讨它们的应用场景。
841 1
|
人工智能 自然语言处理 程序员
通义灵码:融合创新玩法与探索,重塑LeetCode解题策略
欢迎来到工程师令狐小哥的频道。本文介绍如何利用AI工具高效刷LeetCode,通过通义灵码插件在IntelliJ IDEA中实现代码生成、优化、单元测试等功能,提升编程学习效率。
707 1
通义灵码:融合创新玩法与探索,重塑LeetCode解题策略
|
机器学习/深度学习 人工智能 自然语言处理
从原理出发 - 提示词如何影响大模型的输出
在探索人工智能的深海中,提示词(Prompt)是引导大模型输出的灯塔。本文希望通过对自身所学所思进行总结,解析提示词如何塑造AI的响应,揭示其背后的机制。
2060 10
|
Ubuntu Linux 网络安全
Ubuntu 22.04 LTS有哪些新特性
Ubuntu 22.04 LTS有哪些新特性
|
XML Java Android开发
Android spinner 的使用
Android spinner 的使用
452 6
|
应用服务中间件 nginx
nginx error日志 client intended to send too large body: 1434541 bytes 如何处理?
【8月更文挑战第27天】nginx error日志 client intended to send too large body: 1434541 bytes 如何处理?
1087 6

热门文章

最新文章