Javascript-面向对象与原型

1. 编程思想

  • 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个调用
  • 面向对象是把食物分解成一个一个对象,然后由对象之间分工合作

面向对象编程

在这里插入图片描述

1.1 面向对象与面向过程对比

在这里插入图片描述

2. 构造函数

在这里插入图片描述
在这里插入图片描述

3. 原型

3.1 原型定义

在这里插入图片描述

    // 任何一个数组都可以使用const arr = [1, 2, 3]// 自定义方法写到原型上Array.prototype.max = function () {return Math.max(...this)}console.log(arr.max());// 求和Array.prototype.sum = function () {return this.reduce((prev, item) => prev + item)}console.log([1, 2, 3, 4, 5].sum());

3.2 construtor属性

在这里插入图片描述
在这里插入图片描述

3.3 对象原型

在这里插入图片描述

可以理解成构造函数是爸爸,实例对象和原型prototype是两个儿子
在这里插入图片描述

    function Star() { }const s = new Star()console.log(s.__proto__ === Star.prototype);//true	对象原型指向原型对象

总结

在这里插入图片描述

4. 原型继承

在这里插入图片描述

4.1 封装

在这里插入图片描述
在这里插入图片描述

5. 原型链

在这里插入图片描述

只要是对象就有__proto__
在这里插入图片描述
原型链属于一种查找规则,由于这条线路的存在,可以不断往上查找属性和方法,直到查完为止

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/263275.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

想学编程,但不知道从哪里学起,应该怎么办?

怎样学习任何一种编程语言 我将教你怎样学习任何一种你将来可能要学习的编程语言。本书的章节是基于我和很多程序员学习编程的经历组织的,下面是我通常遵循的流程。 1.找到关于这种编程语言的书或介绍性读物。 2.通读这本书,把…

基于以太坊的智能合约开发Solidity(事件日志篇)

//声明版本号(程序中的版本号要和编译器版本号一致) pragma solidity ^0.5.17; //合约 contract EventTest {//状态变量uint public Variable;//构造函数constructor() public{Variable 100;}event ValueChanged(uint newValue); //事件声明event Log(…

java--Date、SimpleDateFormat时间类,JDK8之前的

1.Date 代表的是日期和时间 2.SimpleDateFormat 代表简单日期格式化,可以用来把日期对象、时间毫秒值格式化成我们想要的形式。 3.时间格式常见符号 4.SimpleDateFormat解析字符串时间成为日期对象

Matlab数学建模算法之小波神经网络详解

🔗 运行环境:Matlab 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥 推荐专栏:《算法研究》 🔐#### 防伪水印——左手の明天 ####🔐 💗 大家…

NR Channel raster和Sync raster

NR中,由于信道带宽可能非常大,如果UE按照channel Raster进行同步信号搜索,需要的时间很长,且非常耗电;因而NR引入了Synchronization raster的概念,同步信号按照Sync Raster放置。 ARFCN 频点号对应Channel…

打造Github首页的动态飞线效果

一、导语 Github首页的地球动态飞线,大家都比较熟悉吧 二、分析 由大量随机的3点构造出贝塞尔曲线,然后开始从起点到终点的飞行后,然后再从起点到终点的消失,就此完成整个过程 三、基础代码 createCurve(startPoint, endPoint…

Java 8 新特性深度解析:探索 Lambda 表达式、Stream API 和函数式编程的革新之路

Java8 新特性 Java 8 的革新之路 自 1995 年首次发布以来,Java 已经成为世界上最广泛使用的编程语言之一。随着时间的推移,Java 经历了多次版本更新,其中最具里程碑意义的便是 Java 8 的发布。这个版本引入了许多重大变革,包括 …

LabelImg的使用及注意事项

LabelImg是一款开源的图像标注工具,它主要用于标注目标检测、语义分割和图像分类等深度学习中需要的数据集。通过使用LabelImg,用户可以快速、准确地为图片中的目标添加标注信息,从而建立数据集。 使用步骤: 下载LabelImg&#x…

GPIO的使用--USART串口通信--传感器控制数据

目录 一、串口通信 1、概念 2、原理图 3、使用步骤 (1)寻找串口位置 (2)确定引脚编号 (3)编写代码 4、实验结果 实验代码 main.c usart.c usart.h 一、串口通信 1、概念 串行接口是一种可以将…

智能优化算法应用:基于蜻蜓算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于蜻蜓算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于蜻蜓算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.蜻蜓算法4.实验参数设定5.算法结果6.参考文献7.MA…

DDD系列 - 第6讲 仓库Repository及Mybatis、JPA的取舍(一)

目录 一、领域层定义仓库接口1.1 设计聚合1.2 定义仓库Repository接口二 、基础设施层实现仓库接口2.1 设计数据库2.2 集成Mybatis2.3 引入Convetor2.4 实现仓库三、回顾一、领域层定义仓库接口 书接上回,之前通过一个关于拆解、微服务、面向对象的故事,向大家介绍了如何从微…

变容二极管测量

测量变量二极管一般有两种方法:一是搭建偏置电路,用LCR电桥测量电容;二是搭建一个VCO,通过测量频率,简接测量变容二极管的电容值。 正好手里有许老师LCR,搭建一个简单的测试电路即可,电路图如下…