浅谈javascript面向对象理解

GD32官方资料学习体系(主要包括MCU选型、原理图PCB设计、软件开发入门及用户手册等) 大部分还未更新,先占个坑,日后更新…… 目前国外芯片涨价涨的离谱(就是在说ST),国内最好的替代就是兆易创新出的系列芯片了。但是官方资料繁杂,小白上手不易,因此边入门边记录,也给后来者根据官方资料可以有一个较为完整的学习体系。 阅读详情

1.面向对象与面向编程的比较

1.1 面向对象(oop)
  • 面向对象是把事物分解称为一个个对象,然后由对象之间分工与合作,是以对象功能划分问题,而不是步骤
  • 特征: 封装性、继承性、多态性
  • 优点: 优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护
  • 缺点: 性能比面向过程低

面向对象的思维特点:

  1. 抽取(抽象)对象共用的属性和行为组织(封装)成一个类(模板)
  2. 对类进行实例化, 获取类的对象
1.2 面向过程(pop)
  • 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了,面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了
  • 优点:性能比面向对象高,适合跟硬件联系很紧密的东西,例如单片机就采用的面向过程编程。
  • 缺点:没有面向对象易维护、易复用、易扩展

2. ES6中的类和对象

在js中,对象是一组无序的相关属性和方法的集合,万物皆对象
对象是由属性和方法组成的:

  • 属性: 事物的特征,在对象中用属性来表示
  • 方法: 事物的行为,在对象中用方法来表示

在 ES6 中新增加了类的概念,可以使用 class 关键字声明一个类,之后以这个类来实例化对象
类与对象的区别:

  • 类抽象了对象的公共部分,它泛指某一大类(class)
  • 对象特指某一个,通过类实例化一个具体的对象
2.1 类的创建

语法:

class name {
// 添加属性和方法,也可以再嵌入一个类
	class age {},	
}

创建实例

let a = new name();
// 类必须使用new实例化对象
2.2 类 constructor 构造函数

constructor() 方法是类的构造函数(默认方法),用于传递参数,返回实例对象,通过 new 命令生成对象实例时,自动调用该方法。如果没有显示定义, 类内部会自动给我们创建一个constructor()
语法:

class Person {
  constructor(name,age) {   // constructor 构造方法或者构造函数
      this.name = name;
      this.age = age;
    }
    sayHi() {
    console.log('我会唱歌');
    }
    // 注意,方法之间不需要加逗号。同时函数不需要加function关键字
}       

创建实例:

var ldh = new Person('刘德华', 18); 
console.log(ldh.name);
ldh.sayHi();
2.3 类的继承

实例:

class Father {
      constructor(surname) {
        this.surname= surname;
      }
      say() {
        console.log('你的姓是' + this.surname);
       }
}
class Son extends Father{  // 这样子类就继承了父类的属性和方法
}
var damao= new Son('刘');
damao.say();     

super关键字用于访问和调用对象父类上的函数,可以调用父类的构造函数,也可以调用父类的普通函数
语法:

class Father {
            constructor(x,y) {
                this.x = x;
                this.y = y;
            }
            sum() {
                console.log(this.x + this.y);
            }
           say() {
               return '我是爸爸';
           }
        }
class Son extends Father{
            constructor(x,y) {
                // this.x = x;
                // this.y = y;
               super(x,y); // 调用了父类中的构造函数  ,super必须写在子类this之前调用
               // 子类在构造函数中使用super, 必须放到 this 前面  (必须先调用父类的构造方法,在使用子类构造方法)
                this.x = x;
                this.y = y;
            }
            say() {
                console.log(super.say() + '的儿子');  // 利用super调用父类的函数
            }
            substract() {
                console.log(this.x - this.y);
            }
        }
        var son = new Son(11,2);
        console.log(son);
        son.say();
        son.substract();
        son.sum();    
2.4 注意点
  • 在 ES6 中类没有变量提升,所以必须先定义类,才能通过类实例化对象.
  • 类里面的共有属性和方法一定要加this使用.
  • 类里面的this指向问题.
  • constructor 里面的this指向实例对象, 方法里面的this 指向这个方法的调用者
GMSL转eDP芯片MAX9686X(ADI) MAX96860/MAX96862/MAX96864解串器可以把单路或双路GMSL转换成eDP V1.4a,支持820MHzPCLK的无压缩的24bpp(每个像素的位数)视频,或660MHz的30bpp视频。芯片的GMSL支持NRZ编码的6Gbps/187Mbps的GMSL2,PAM4编码的12Gbps/187Mbps的GMSL3。同时支持单线(COAX模式)双向全双工传输控制数据和video数据。支持DSC压缩的芯片,最大支持像素时钟1080MHz@24bpp或者864MHz@30bpp,传输方式包括同轴 阅读详情

相关推荐

微信小程序利用Echarts加载中国地图的步骤

微信小程序如何利用Echarts加载地图?可按照如下四个步骤进行。(阅读时间大概3分钟)。

成都都成 5274

JavaScript初学必备 之 面向对象

面向对象编程思想学习

tic_tac_toe的博客 1447

Mac用户必看:Typora最新版永久激活+弹窗屏蔽保姆级教程(附崩溃解决方案)

本文为Mac用户提供了一份详尽的Typora最新版永久激活与弹窗屏蔽教程。通过修改关键JS文件,实现软件激活状态并彻底关闭成功提示弹窗。文章深入剖析了操作原理,并重点提供了解决由此引发的多文档崩溃问题的实用临时方案,同时客观讨论了该方法的局限性与潜在风险。

wine的专栏 2354

JS面向对象的理解

JS面向对象的理解1.理解对象1.1.new 操作符 + Object 创建对象1.2.字面式创建对象2.创建对象2.1.工厂模式2.2.构造函数模式2.3.原型模式2.4.组合使用构造函数模式和原型模式2.5.动态原型模式2.6.寄生构造函数模式2.7.稳妥构造函数模式3.继承3.1.原型链3.2.借用构造函数3.3.组合继承3.4.原型式继承3.5.寄生式继承3.6.寄生组合式继承4.学习地址 1.理解对象 1.1.new 操作符 + Object 创建对象 var person = new Objec

lvxinaidou的博客 1698

PL/SQL 中的数据导入和导出:CSV 文件格式详解

在 PL/SQL 开发中,数据的导入和导出是常见的操作。本文将深入探讨如何使用 PL/SQL 导入和导出 CSV 文件格式的数据,帮助你轻松地实现数据迁移、备份和数据交换等需求。CSV(Comma-Separated Values)是一种常见的文本文件格式,它以逗号作为字段的分隔符,每行表示一个记录。使用 CSV 格式可以方便地在不同的系统之间共享和传输数据。下面我们将分步介绍如何在 PL/SQL 中导入和导出 CSV 文件格式的数据。

pleaseprintf的博客 8836

【CubeMX】STM32G474 HRTIM 互补PWM与死区时间配置实战

本文详细介绍了如何使用STM32CubeMX配置STM32G474的高分辨率定时器HRTIM生成互补PWM波形并精确设置死区时间。通过实战步骤讲解时钟配置、死区计算与高级功能,帮助工程师在电机驱动和电源应用中实现精准控制,避免上下桥臂直通风险。

grpc6streamer的博客 727

js面向对象的理解

类:在 JavaScript 中,你可以使用类来定义对象的类型。你可以在类中定义属性和方法,然后使用该类创建多个对象。构造函数是一个普通的函数,只不过使用 new 运算符来调用它时,它将返回一个新的对象实例。对象:JavaScript 中的对象是一种数据结构,它包含一些属性和方法。属性是对象的特征,而方法是对象的行为。这是创建对象最简单的方式之一,可以直接使用花括号 {} 来创建一个对象,并在其中定义属性和方法。可以使用 ES6 中引入的 class 关键字来创建对象,它本质上也是一种构造函数的语法糖。

小魔仙的成长之路 537

GEE必须会教程——一文教会你研究区域分块计算与合并

一整块算不是挺好的吗?emmmm,用过的人都知道,GEE好比幼年期的“紫妍”,要用“丹药”来养的,除非你是萧炎小友,到哪都有人给爆金币。我们今天想做的是计算2020年夏季西藏自治区的植被覆盖度(FVC),FVC的估算需要使用归一化植被指数(NDVI数据),这里我们用到的产品是MODIS的相关数据产品,该产品的分辨率是25 0m。下载好的结果毕竟是一块一块的,怎么对下载好的结果进行拼接,变成一张大图呢,别急,接下来,我们上科研小霸王——R语言。此处,我们通过省份数据,按照属性筛选,得到西藏自治区的行政边界。

Promising_GEO的博客 2511

js面向对象怎么理解

js面向对象怎么理解 <一>、认识对象。首先要认识对象:在编程中,对象(object)是具体的某一个实例,唯一的某一个个体。如:电脑就是一个统称,而你面前的这一台电脑就是对象。而电脑的统称在编程中叫做类,概念就是:具有一类相同特征事物的抽象概念。在js中只有对象的概念。没有类的概念,在ECMA6中必须加回来。 对象的语法:(创建对象) var obj1 = new Objec...

style_1997的博客 883

深入大模型-19-Windows10中安装OpenClaw-CN配置接入智谱免费大模型

OpenClaw CN (中国社区版) 是 OpenClaw 的本地化维护版本,针对国内网络环境进行了深度优化,源码级原生支持 DeepSeek/Qwen 等国产大模型,致力于让中国开发者拥有最顺滑的 Agent 开发体验。

qq_20466211的博客 771

Asterisk中MixMonitor之支持接通后录音

一、概述 当我们使用开源的IPPBX(比如Elastix-2.5/4.0或者ISSABEL-4.0/FreePBX)的时候Outbound和Inbound路由(RingGroup/FollowMe)中有一个Call Recording选项,其值包括:Allow、Record immediately、Record On Answer和Nerver。当选择为Record On Answer,其实就是MixMonitor自带一个b选项。 尽管Asterisk自带的MixMoni...

宽简厚重—博约 1156

JavaScript 面向对象详解

JavaScript面向对象

LBJ辉的前端天地 5260

(第14天)Veritas NetBackup(NBU) 配合 RMAN 脚本备份 Oracle 数据库

NBU(Veritas Netbackup)是企业中比较常用的备份软件,通常用于备份企业使用中的系统,数据库,文件等等,通常是搭配 Oracle RMAN 来进行备份 Oracle 数据库。

LuciferLiu_DBA 1642

浅谈JavaScript面向对象特性的理解

首先得分清面向过程与面向对象。

sy_7546的博客 799

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

从指令集到最小系统:RISC-V架构入门实践指南

RISC-V作为一种开放、模块化的指令集架构(ISA),正深刻改变嵌入式开发与CPU设计的生态格局。它以极简的RV32I基础整数指令集为核心,搭配可选的M、A、C等扩展模块,让芯片设计者能自由裁剪,也让软件开发者能在统一标准上构建编译器与操作系统。理解寄存器ABI约定、特权模式以及中断异常流程,是掌握RISC-V底层机制的关键。通过QEMU模拟器运行最小系统,开发者可以快速验证从汇编启动到C语言主函数的完整链路,降低学习门槛。RISC-V不仅适用于MCU裸机开发,也为Linux内核和RTOS提供了灵活的特权

weixin_30613727的博客 382

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

浅谈js的面向对象

js没有类最开始的时候,我以为所有面相对象的语言都会有类的概念。然而js告诉了我,我还是太native。 JavaScript从发明的那天起就没有真正的类,虽然有不少JavaScript书籍或文章中都讲到了类,就好像JavaScript中真的存在类一样.但其实,他们所说的类只是一些自定义的构造函数,这些函数可以用来构造一些自定义的引用类型.在JavaScript中,引用类型已经是最接近于类的东西了

南极达殇 487

浅谈 js 面向对象

前言 我们想来思考一个问题,对象是什么。简言之,包含属性和方法的就是对象。更严肃一点即“类的实例”。

liujiebahuang的博客 6918

浅谈js中面向对象的4种设计模式

文章目录浅谈js面向对象的4种设计模式1. 单例模式2. 工厂模式3. 观察者模式4. 装饰者模式 浅谈js面向对象的4种设计模式 设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 最近开始接触面向对象编程,以下为总结的4种常用的面向对象的设计模式 1. 单例模式 1. 说明: 单例模式,属于创建类型的一种常用的

qq_41361668的博客 745

JavaScript进阶之浅谈面向对象编程

JavaScript进阶之浅谈面向对象编程什么是面向对象类和对象类的创建方式function关键字创建方式(一)创建方式(二)class关键字(ES6新增)创建方式 什么是面向对象 面向对象是一中思维模式并非是看得见摸得着的某一段代码 面向对象的核心思想是万物皆对象(Object Oriented Programming) JavaScript是基于对象的语言而非完整的面向对象语言 面向对象代表...

YXGR 452

浅谈javascript面向对象和类

首先是面向对象: 面向对象是为了帮助我们更好的进行编程,面向过程是分析解决问题的所需步骤然后用函数把这些步骤一步一步的实现,但是当问题的过程非常复杂的时候,面向过程就会非常麻烦 所以我们要将过程分解为不同的对象进行处理,目的是为了让一个对象处理一种行为这样相同或者相似的行为就可以使用一个函数来处理 那么明白了我们的面向对象 如何实现呢 就是类和属性的方法 类:具有同种属性的对象称为类, 这是为了让我们更容易的管理程序, 因为类可以共享,就好像我们班级70人我们给他们每个人都指派好任务可能一晚上都讲不完,但

shadowfall的博客 345

浅谈javascript面向对象

浅谈javascript“面向对象”: 所谓面向对象oo语言就是能够创建自己专用的类或者对象,封装一组属性和行为。 ======================================================= js几种面向对象写法分析: 1.早期模式: var Person = new Object;    Person.name

玉超 1342

浅谈JS中的面向对象编程

面向过程, 构造函数, 原型对象 面向对象编程----Object Oriented Programming 简称 OOP, 是一种以模块化为中心的编程思想; 核心是----关注模块, 组成整体。 组合使用构造函数 + 原型对象, 构造函数用于定义实例属性, 而共享属性和方法定义在原型对象中; 这样每个实例都有自己独有的属性, 同时又可以使用共享方法的, 节省内存, 提高开发效率。 这种构造函数与原型对象混合式开发模式,在JS ES5中使用最为广泛的一种创建对象的方法。

Beyond_Liu1226的博客 282

浅谈面向对象

重新认识JavaScript面向对象: 从ES5到ES6 ????这篇文写的不错 在此之前我先摊牌,我目光狭隘、见识短浅、理解俗套,故以下观(tu)点(cao)权当笑话看就好~ 作为一名对C++浅尝辄止、对Java只有过一面之缘、对Python的记忆尚停留在pandas和numpy调用上的菜菜子,我万万没想到,众人口中的面向对象指的就是封装、多态、继承。这3个词就已经够装X了,最后还给这3个词戴了个更装X的帽子——面向对象。当然了,本菜菜子也体会不到广大编程人员从C++、Java这些严谨、经典的语言,转入J

weixin_43845044的博客 281

js之浅谈面向对象

//今天简单的聊聊面向对象(我虽然单身,但是我可以new一个对象) 一、面向对象是啥??? 面向对象编程(Object Oriented Programming,缩写为 OOP)是目前主流的编程方式。它将真实世界各种复杂的关系,抽象为一个个对象,然后由对象之间的分工与合作,完成对真实世界的模拟。 其实面向对象就是一中思维方式,是站在管理者的角度来思考问...

weixin_44395929的博客 177

浅谈JS中的面向对象

浅谈JS中的面向对象 本文主要说说本人在JS中对面向对象的理解。 计算机编程语言主要分为面向过程式编程和面向对象式编程,面向对象编程最大的特点就是类,比如人有姓名,性别,年龄,行为等,电脑有型号,重量等,类就是将一类事物的共通点放到一个集合中。 JS中本身没有class(ES6以前,ES6引入了class,本文主要针对ES6以前进行讲解),但是有类class的概念,就是我们常说的构造函数,本质上是...

逍遥生的博客 235

浅谈JavaScript面向对象与基础类型

每日总结 1.JavaScript面向对象 2.七大数据类型类型 1.JavaScript面向对象的理解 JavaScript面向对象和其他基于类的面向对象语言相比他是基于原型的,面向对象其实就是一种接近人类思维的一种概念,举个例子,先有一个苹果(对象),我们知道这个苹果能吃,之后才知道所有苹果都能吃(类)。说起面向对象大家都会想到封装继承多态,这里我要强调的是他们的不同点,JavaS...

萌芽萌芽子 272

python封装继承多态_浅谈JavaScript的面向对象和它的封装、继承、多态

写在前面既然是浅谈,就不会从原理上深度分析,只是帮助我们更好地理解...面向对象与面向过程面向对象和面向过程是两种不同的编程思想,刚开始接触编程的时候,我们大都是从面向过程起步的,毕竟像我一样,大家接触的第一门计算机语言大概率都是C语言,C语言就是一门典型的面向过程的计算机语言。面向过程主要是以动词为主,解决问题的方式是按照顺序一步一步调用不同的函数。面向对象是以名词为主,将问题抽象出具体的对象,...

weixin_39545017的博客 172
上一篇: CSS3新特性之2D转换
下一篇: javascript构造函数和原型
Lin__hr
博客等级 码龄6年 5粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值