4JavaScript对象及初识面向对象

STM32F103串口接收中断:USART_IT_IDLE和USART_IT_RXNE区别 2:如果是大于1个byte的数据,在不用DMA的情况下,同时使能USART_IT_RXNE,USART_IT_IDLE中断,每收到一个字节在中断中把数据存到缓存中,待收到USART_IT_IDLE中断时,收完整帧数据,然后再解析处理数据。比如:如上图在初始化时,同时开启了两个中断,如果传送8个字节的数据,就会产生8个USART_IT_RXNE,和1个USART_IT_IDLE中断。(如果接收到数据,在1个byte的时间内,没有收到新数据,就认为是数据传送完成,产生空闲USART_IT_IDLE中断) 阅读详情

#JavaScript对象及初识面向对象

课件

1对象是什么

2创建对象

自定义对象

内置对象

3构造函数和原型对象

如何解决使用同一个接口不需要创建很多对象,减少产生大量的重复代码?

构造函数

使用构造函数创建新实例

调用构函数的4个步骤

创建一个新对象

将构造函数的作用域赋给新对象(this就指向了这个新对象)

执行构造函数中的代码

返回新对象

constructor属性instanceof操作符

原型对象

4继承

原型链

对象继承

组合继承

组合继承:有时也叫做伪经典继承

将原型链和借用构造函数的技术组合到一块,发挥二者之长的一种继承模式

使用原型链实现对原型属性和方法的继承,而通过借用构造函数来实现对实例属性的继承

总结

代码--此部分对比Java理解,特殊在prototype

示例1:创建对象new,.?=?,alert

<!DOCTYPE html>

<html>

<head lang="en">

    <meta charset="UTF-8">

    <title>创建对象</title>

</head>

<body>

<script>

    var flower=new Object();

    flower.name="长春花";

    flower.genera="夹竹桃科 长春花属";

    flower.area="非洲、亚热带、热带以及中国大陆的华东、西南、中南等地";

    flower.uses="观赏或用药等";

    flower.showName=function(){

        alert(this.name);

    }

    flower.showName();

</script>

</body>

</html>

示例2:字面量创建对象?:?

<!DOCTYPE html>

<html>

<head lang="en">

    <meta charset="UTF-8">

    <title>字面量赋值方式创建对象</title>

</head>

<body>

<script>

    var flower={

        name:"长春花",

        genera:"夹竹桃科 长春花属",

        area:"非洲、亚热带、热带以及中国大陆的华东、西南、中南等地",

        uses:"观赏或用药等",

        showName:function(){

            alert(this.name);

        }

    }

    flower.showName();

</script>

</body>

</html>

示例3:构造函数  同java

<!DOCTYPE html>

<html>

<head lang="en">

    <meta charset="UTF-8">

    <title>构造函数</title>

</head>

<body>

<script>

    function Flower(name,genera,area,uses){

        this.name=name;

        this.genera=genera;

        this.area=area;

        this.uses=uses;

        this.showName=function(){

            alert(this.name);

        }

    }

    var flower1=new Flower("长春花","夹竹桃科 长春花属","非洲、亚热带、热带以及中国大陆的华东、西南、中南等地","观赏或用药等");

    flower1.showName();

    var flower2=new Flower("牡丹","芍药科 芍药属","中国","观赏、食用或药用");

    flower2.showName();

    var flower3=new Flower("曼陀罗花","茄科 曼陀罗属","印度、中国北部","观赏或药用");

    flower3.showName();

    //alert(flower1.constructor==Flower);

    //alert(flower2.constructor==Flower);

   // alert(flower2.constructor==Flower);

    alert(flower1 instanceof Object);

    alert(flower1 instanceof Flower);

    alert(flower2 instanceof Object);

    alert(flower2 instanceof Flower);

    alert(flower3 instanceof Object);

    alert(flower3 instanceof Flower);

</script>

</body>

</html>

示例4:构造函数优化

<!DOCTYPE html>

<html>

<head lang="en">

    <meta charset="UTF-8">

    <title>构造函数</title>

</head>

<body>

<script>

    function Flower(name,genera,area,uses){

        this.name=name;

        this.genera=genera;

        this.area=area;

        this.uses=uses;

        this.showName=showName;

    }

    function showName(){

        alert(this.name);

    }

    var flower1=new Flower("长春花","夹竹桃科 长春花属","非洲、亚热带、热带以及中国大陆的华东、西南、中南等地","观赏或用药等");

    var flower2=new Flower("牡丹","芍药科 芍药属","中国","观赏、食用或药用");

    var flower3=new Flower("曼陀罗花","茄科 曼陀罗属","印度、中国北部","观赏或药用");

    flower1.showName();

    flower2.showName();

    flower3.showName();

    alert(flower1 instanceof Object);

    alert(flower1 instanceof Flower);

    alert(flower2 instanceof Object);

    alert(flower2 instanceof Flower);

    alert(flower3 instanceof Object);

    alert(flower3 instanceof Flower);

    alert(flower1.constructor==Flower);

    alert(flower2.constructor==Flower);

    alert(flower3.constructor==Flower);

</script>

</body>

</html>

示例5:原型对象prototype=java的extends

<!DOCTYPE html>

<html>

<head lang="en">

    <meta charset="UTF-8">

    <title>原型对象</title>

</head>

<body>

<script>

    function Flower(){

    }

    Flower.prototype.name="曼陀罗花";

    Flower.prototype.genera="茄科 曼陀罗属";

    Flower.prototype.area="印度、中国北部";

    Flower.prototype.uses="观赏或药用";

    Flower.prototype.showName=function() {

        alert(this.name);

    }

    /*var flower1=new Flower();

    flower1.showName();

    var flower2=new Flower();

    flower2.showName();

    alert(flower1.showName==flower2.showName);*/

    var flower1=new Flower();

    var flower2=new Flower();

    flower1.name="长春花";

    alert(flower1.name);

    alert(flower2.name);

</script>

</body>

</html>

示例6:原型链-函数和prototype

<!DOCTYPE html>

<html>

<head lang="en">

    <meta charset="UTF-8">

    <title>原型链</title>

</head>

<body>

<script>

    function Humans(){

        this.foot=2;

    }

    Humans.prototype.getFoot=function(){

       return this.foot;

    }

    function Man(){

        this.head=1;

    }

    Man.prototype=new Humans();

    Man.prototype.getHead=function(){

        return this.head;

    }

    var man1=new Man();

    alert(man1.getFoot());

    alert(man1.getHead());

    alert(man1 instanceof Object);

    alert(man1 instanceof Humans);

    alert(man1 instanceof Man);

</script>

</body>

</html>

示例7:给原型添加方法prototype.方法

<!DOCTYPE html>

<html>

<head lang="en">

    <meta charset="UTF-8">

    <title>给原型添加方法</title>

</head>

<body>

<script>

    function Humans(){

        this.foot=2;

    }

    Humans.prototype.getFoot=function(){

        return this.foot;

    }

    function Man(){

        this.head=1;

    }

    //继承了Humans

    Man.prototype=new Humans();

    //添加新方法

    Man.prototype.getHead=function(){

        return this.head;

    }

    //重写父类型中的方法

    Man.prototype.getFoot=function(){

        return false;

    }

    var man1=new Man();

    alert(man1.getFoot());    //false

</script>

</body>

</html>

示例8:原型链的问题push

<!DOCTYPE html>

<html>

<head lang="en">

    <meta charset="UTF-8">

    <title>原型链的问题</title>

</head>

<body>

<script>

    function Humans(){

        this.clothing=["trousers","dress","jacket"];

    }

    function Man(){

     }

    //继承了Humans

    Man.prototype=new Humans();

    

    var man1=new Man();

    man1.clothing.push("coat");

    alert(man1.clothing);

    var man2=new Man();

    alert(man2.clothing);

</script>

</body>

</html>

示例9:借用构造函数call

<!DOCTYPE html>

<html>

<head lang="en">

    <meta charset="UTF-8">

    <title>借用构造函数</title>

</head>

<body>

<script>

    function Humans(){

        this.clothing=["trousers","dress","jacket"];

    }

    function Man(){

        Humans.call(this);   //继承了Humans

    }

    var man1=new Man();

    man1.clothing.push("coat");

    alert(man1.clothing);

    var man2=new Man();

    alert(man2.clothing);

</script>

</body>

</html>

示例10:借用构造函数传递参数

<!DOCTYPE html>

<html>

<head lang="en">

    <meta charset="UTF-8">

    <title>借用构造函数传递参数</title>

</head>

<body>

<script>

    function Humans(name){

        this.name=name;

    }

    function Man(){

        Humans.call(this,"mary");   //继承了Humans,同时还传递了参数

        this.age=38;                //实例属性

    }

    var man1=new Man();

    alert(man1.name);

    alert(man1.age);

</script>

</body>

</html>

示例11:组合继承

<!DOCTYPE html>

<html>

<head lang="en">

    <meta charset="UTF-8">

    <title>组合继承</title>

</head>

<body>

<script>

    function Humans(name){

        this.name=name;

        this.clothing=["trousers","dress","jacket"];

    }

    Humans.prototype.sayName=function(){

        alert(this.name);

    };

    function Man(name,age){

        Humans.call(this,name);    //继承属性

        this.age=age;

    }

    Man.prototype=new Humans();    //继承方法

    Man.prototype.sayAge=function(){

        alert(this.age);

    };

    var man1=new Man("mary",38);

    man1.clothing.push("coat");

    alert(man1.clothing);     //输出"trousers,dress,jacket,coat"

    man1.sayName();            //输出mary

    man1.sayAge();            //输出38

    var man2=new Man("tom",26);

    alert(man2.clothing);    //输出"trousers,dress,jacket"

    man2.sayName();            //输出tom

    man2.sayAge();            //输出26

</script>

</body>

</html>

工业相机图像格式深度解析:从Mono8到Mono12的选型与应用 本文深度解析工业相机黑白图像格式,重点对比Mono8、Mono10与Mono12的核心差异。文章从位深、动态范围和数据量等关键概念切入,详细阐述了不同格式的优缺点及适用场景,为工业视觉项目中的相机选型提供实战指南,帮助用户在精度、速度与成本间做出最优决策。 阅读详情

相关推荐

Verilog语法之十:过程块(initial和always)

我将Verilog的语法进行了总结,写了13篇文章,让小白“快速见识猪如何跑”,每一篇讲解一类语法,结合正确的示例代码和错误的示例代码,有的章节对个别语法进行了归纳总结,帮助初学者加深理解。

航天领域资深码农,型号经验丰富,一线干货分享 1672

JS prototype 理解

JS里的对象在Ajax发展之后, 就跟着疯狂起来, 要玩好JS的对象, 就要搞清楚构造器(constructor), 指针(pointer), 原型(prototype) 这篇文章主要记录我对prototype的理解 prototype 最初的用法是, 为了避免方法在构造器里随机数据被实例化时而产生重复的副本 后来被用在"继承"上面了, 注意, JS语义上是没有继承的, 这里说...

伊苏 178

水下探测小白必看:单波束vs多波束声呐,5分钟搞懂核心区别

本文为水下探测新手清晰解析了单波束与多波束声呐的核心区别。单波束声呐如同精准的“手电筒”,进行逐点扫描,适用于定点测深和目标探测;而多波束声呐则像“聚光灯”,能一次性覆盖一个扇区,高效获取海底地形三维信息,是海底测绘和水下三维建模的理想选择。文章通过生动的比喻和对比表格,帮助读者快速理解两者原理、效率差异及适用场景。

linux6sysadmin的博客 1049

ES6新增语法(三)——面向对象(1),2024年最新字节跳动面试是什么意思

前端框架太多了,真的学不动了,别慌,其实对于前端的三大马车,Angular、React、Vue 只要把其中一种框架学明白,底层原理实现,其他两个学起来不会很吃力,这也取决于你以后就职的公司要求你会哪一个框架了,当然,会的越多越好,但是往往每个人的时间是有限的,对于自学的学生,或者即将面试找工作的人,当然要选择一门框架深挖原理。console.log(‘今年’,this.age,‘岁’)console.log(‘今年’,this.age,“岁”)console.log(‘今年’,this.age,‘岁’)

m0_56169789的博客 407

Fluent温度超限调试:从能量方程到网格优化的实战指南

本文深入解析Fluent中温度超限问题的诊断与解决方法,从能量方程机制到网格优化策略,提供实战指南。通过分析温度与焓的换算关系,探讨典型场景如能量方程发散、局部网格质量差等,并给出五步调试法及高级命令应用,帮助工程师有效解决温度计算异常问题。

weixin_29045585的博客 531

抑制电磁干扰(EMI)的实用电路技术

抑制电磁干扰(EMI)的实用电路技术 qtFK_EMC_EMI 【导读】本系列文章的第 1 部分至第 4 部分详细介绍了开关电源稳压器引起的传导发射和辐射发射,包括噪声产生机制、测量要求、频率范围、适用的测试限值、传播模式和寄生效应。在第 5 部分中,我将基于这一理论基础介绍抑制电磁干扰 (EMI) 的实用电路技术。 一般来说,电路原理图和印刷电路板 (PCB) 对于实现出色的 EMI 性能至关重要。第 3 部分重点强调通过谨慎的元器件选型和 PCB 布局尽量减小“功率回路”寄生电感的重要性。电源转换

学海无涯的专栏 1196

对于面对对象和prototype的理解

面向过程和面向对象面向过程和面向对象的区别 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。就是使用函数将一个大的功能分成很多小功能,每个功能称之为一个过程,这就是面向过程编程。 面向对象是把在解决问题中构成问题的事项分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 面向对象的优点 单

kumayato的博客 556

巡检类机器人电池容量计算方法论(原理+算法+真实案例)

摘要:本文系统阐述了巡检机器人电池容量的计算方法,重点解析了;能量平衡;核心原理和三种主流算法。通过光伏电站履带式巡检机器人的真实案例,详细演示了从工况拆解、功耗采集到容量计算的完整流程。文章指出:室内轻载场景可采用静态平均功耗法,户外常规工况推荐动态负载积分法,而复杂环境需采用融合估算算法。特别强调需考虑温度修正(冬季容量衰减20%)、冗余系数(1.2-1.5)和放电深度(磷酸铁锂DoD取80%)等关键参数。

start_up_go的博客 243

javaScript对象及初始面向对象 第四章

第一题 &lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;第一题&lt;/title&gt; &lt;/head&gt; &lt;div id="intro"&a

liyanghahahhaha的博客 1028

【ComfyUI】Wan2.2 Animate 背景保留动作迁移视频生成

本文介绍了一个基于ComfyUI的高精度视频生成工作流"Wan2.2 Animate",该系统融合动作捕捉、图像拼接和LoRA加权等技术,能自动识别人脸并完成精准动作迁移,同时保持背景稳定。工作流采用模块化设计,包含输入提取、图像融合、模型加载等关键节点,核心模型Wan2.2-Animate-14B支持fp8精度与BlockSwap控制。流程分为图像输入、动作提取、多图合成等五个阶段,通过文本提示编码器和图像语义编码器实现语义驱动的动作生成,最终输出高质量视频,适用于虚拟形象驱动和

Mr数据杨 2274

深度拆解 ‘High-Frequency Trading’ (HFT) 系统:解析如何在 100 纳秒内完成从网卡到 C++ 策略的响应

在100纳秒内完成从网卡到C++策略的响应,这是一项对技术栈每一个层面都进行极限优化的系统工程。它要求我们深入理解计算机体系结构、操作系统、网络协议和C++语言的底层机制。从物理距离的极致缩短,到高性能网卡和内核旁路技术,再到C++代码中每一个字节、每一个CPU周期的精打细算,HFT系统展现了人类对计算速度的永恒追求。这项技术不仅仅应用于金融交易,其背后的低延迟理念和实现方法,如DPDK、无锁编程、硬件加速等,正在逐渐渗透到其他对延迟敏感的领域,例如电信网络、边缘计算和工业自动化。

weixin_41455464的博客 1039

第4章 JavaScript对象及初识面向对象

1、对象:在JavaScript中,所有事物都是对象,如字符串、数值、数组、函数等。 JavaScript中的基本数据类型: number(数值类型)  string(字符串类型)   boolean(布尔类型)    null(空类型)    undefined(未定义类型)    object:一种复杂的数据类型,该类型实例化的对象是一组数据和功能的集合;...

weixin_30347009的博客 268

RAP 时代的 Service Binding:把 CDS 业务服务稳稳地“插”到 OData 里

本文深入解析SAP ABAP开发中的关键对象Service Binding,阐述了如何通过三层架构(数据模型、服务定义、服务绑定)实现业务逻辑与协议分离。文章重点分析了Service Binding的核心参数配置,包括服务命名规范、协议类型选择(OData V2/V4、InA、SQL)及服务形态(UI Service与Web API),并通过实际案例说明不同选项的应用场景。同时介绍了服务版本控制机制、发布流程及Fiori预览功能,帮助开发者理解如何通过Service Binding将业务能力高效转化为可消费

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 5714

4、JavaScript对象及初识面向对象

–1、JavaScript中提供了常用的基本数据类型,这些数据类型如下所示。 number(数值类型) string(字符串类型) boolean(布尔类型) null(空类型) nudefined(未定义类型) object:一种复杂的数据类型,该类型实例化的对象是一组数据和功能的集合 –2、创建对象 -1.自定义对象 与java中创建对象语言,创建自定义对象的最简单的方式就是使用操作符new创...

九之者 319

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

js对象及初识面向对象(4)

一、什么是对象?   对象是包含了属性和方法的集合体 二、什么是面向对象?   面向对象是一种编程思想,在JS当中利用原型来阐述这种思想的编程方法 三、构建对象:   1.内置对象:     String Math Date Array Boolean RegExp   2.自定义对象:    方式一:通过new Object()的方式创建对...

weixin_30580341的博客 81

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【JS高级进阶】JavaScript初识面向对象

本篇主要讲解了什么是面向对象,如何创建使用类,super关键字的使用以及注意事项(学过Java的小伙伴们就会很容易理解)区分面向对象和面向过程

zhaochen1127的博客 2700

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

JavaScript 之面向对象

JavaScript 面向对象 一、面向对象编程介绍 1.1 两大编程思想 面向过程 面向对象 1.2 面向过程编程 POP(Process-oriented programming) 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了。 举个栗子:将大象装进冰箱,面向过程做法。 面向过程,就是按照我们分析好了的步骤,按照步骤解决问题。 1.3 面向对象编程 OOP (Object Oriented .

msn131420的博客 4583

js面向对象

什么是面向对象

yh604005215的博客 5422

Js是基于对象还是面向对象的

Js是基于对象还是面向对象的一、什么叫做面向对象二、什么叫做基于对象三: Js的特性四:js通过原型链等来模拟出和面向对象很类似的功能。五:总结 一、什么叫做面向对象 面向对象的三大特点(封装,继承,多态)缺一不可。 所谓封装:也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。 简单...

qq_42615057的博客 1778

JavaScript对象及初识面向对象

JavaScript中的基本数据类型 number(数值类型)string(字符串类型)boolean(布尔类型)null(空类型)undefined(未定义类型)object  对象是什么 对象是包含相关属性和方法的集合体。在JavaScript中,对象是拥有属性和方法的数据,属性是与对象相关的值,方法是能够在对象上执行的动作。 什么是面向对象 面向对象仅仅是一个概念或者编程思想通过一种叫做原型...

weixin_40544803的博客 1172

面向对象的JavaScript编程

面向对象的JavaScript编程 Javascript对于做过Web程序的人不应该是陌生,初期是用来做一些简单的FORM验证,基本上是在玩弄一些技巧性的东西。IE 4.0引入了DHTML,同时为了对抗Netscape的Javascript,提出了自己的脚本语言JScript,除了遵循EMAC的标准之外,同时增加了许多扩展,如下要提到的OOP编程就是其中的一个,为了命且概念,我以

1万+

[JavaScript] 面向对象编程

通过类与对象的概念,可以更好地模拟现实世界的实体,提升代码的可重用性、可维护性和扩展性。JavaScript 的面向对象编程非常灵活,类的引入让代码更加清晰和直观。多态是指不同的类在调用相同方法时,可以表现出不同的行为。静态方法是直接定义在类上的方法,而不是在实例上的方法。在 JavaScript 早期,使用函数和原型链实现面向对象的思想,语法复杂且容易出错。继承允许我们定义一个类,继承另一个类的属性和方法,从而实现代码复用。是用来定义对象蓝图的关键字,其中包含对象的属性和方法。调用父类的构造函数。

kevin_blog 2494

JS面向对象

类、对象、原型与设计模式 学习资料获取方式 本节主要内容: (文章转载自乐字节) 学习目标: 节数 知识点 要求 第一节 面向对象的思想概述 什么类和对象 了解 第二节 类和对象 什么是类和对象 了解 创建对象 了解 属性和方法 了解 第三节 原型 什么是原型 掌握 第四节 原型链 原型链 掌握 第五节 原型继承 原型继承 掌握 第六节 设计模式 设计模式 掌握 第七节 this总结 this问题总结 掌握 问题思考:求两个数的和 方案: 1、

weixin_55765992的博客 7503

9、JavaScript对象及初识面向对象

目录 1、回顾JavaScript数据类型 2、对象是什么 3、什么是面向对象 4、构造函数和原型对象 1、回顾JavaScript数据类型 回顾JavaScript数据类型 JavaScript中的基本数据类型 number(数值类型) string(字符串类型) boolean(布尔类型) null(空类型) undefined(未定义类型) object 2、对象是什么 对象是包含相关属性和方法的集合体 属性 方法 什么是面向对象 面向对象仅仅是一个概

weixin_57614141的博客 331

《JavaScript对象及初识面向对象总结》

JavaScript对象: JavaScript中的基本数据类型: number(数值类型) string(字符串类型) boolean(布尔类型) null(空类型) 【判断后的值是object】 undefined(未定义类型) object(实例化的对象是一组数据或者功能的集合) 对象是包含相关属性和方法的集合体: 属性 方法 什么是面向对象: 面向对象仅仅是一个概念或者编程思想 通过一种叫做原型的方式来实现面向对象编程 创建对象: 自定义对象: 基于Object对象的方式创建对象 语法:v

TAOTAOnice的博客 253

HTML-JavaScript对象及初识面向对象

对象是什么 对象是包含相关属性和方法的集合体(属性)(方法) 什么是面向对象 1.面向对象仅仅是一个概念或者编程思想 2.通过一种叫做原型的方式来实现面向对象编程 JavaScript中的基本数据类型: number(数值类型) string(字符串类型) boolean(布尔类型) null(空类型)    【判断后的值是object】 undefined(未定义类型) ...

南劲竹的博客 886
上一篇: 3JavaScript操作DOM对象
下一篇: 5JS库-前端框架(库)-初识jQuery
Eastlin_1
博客等级 码龄6年 3109粉丝 122原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值