浅谈javascript面向对象理解

相机图像质量研究(15)常见问题总结:光学结构对成像的影响--暗角 老式相机的暗角往往比较明显,周围一圈能够明显感觉到亮度下降的很多,当然有些电源模仿手持相机的摄影效果,也能看到周围明显的亮度下降。一、 阅读详情

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 指向这个方法的调用者
Altera FPGA与高速ADS4249和DAC3482的LVDS接口设计 引言:本文以TI的ADS4249(ADC)和DAC3482(DAC)之间的接口为例,介绍Altera FPGA与ADC/DAC之间的DDR LVDS接口设计以及时序约束详细设计。本文介绍的实例可方便扩展到具有类似接口格式的其他高速数据转换器设计。 阅读详情

相关推荐

在unity urp项目中 通过图片创建材质(透明光晕)

unity中通过图片创造材质(urp管道)

m0_49721415的博客 1540

JavaScript初学必备 之 面向对象

面向对象编程思想学习

tic_tac_toe的博客 1447

无需云服务器:飞牛云NAS+Docker搭建本地WordPress站点全球访问

在数字化浪潮中,网站搭建已成为个人和企业在推广自身品牌与业务的首要选择。飞牛云新推出的fnOS,这款集多功能于一身的nas系统,以其卓越的性能和灵活性,成为理想的本地网站部署平台。本文将带你一探如何在飞牛云NAS上通过Docker部署WordPress,并利用cpolar实现全球访问。

LT15171009269的博客 6528

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

debian mirrors 镜像源 riscv 64 赛昉 星光 starfive vf2 InRelease‘ doesn‘t support architecture ‘riscv64‘

debian mirrors 镜像 riscv 64 赛昉 星光2 starfive vf2 InRelease' doesn't support architecture 'riscv64'

qq_29758759的博客 1259

【深度学习新浪潮】气候预测模型的研发进展一览(2025年版)

模型类型核心优势适用场景不足ARIMA(统计模型)简单高效、可解释性强短期单变量预测非线性、长时依赖建模差随机森林(机器学习)多特征融合、抗噪声中短期多因素预测空间相关性、时序趋势捕捉弱LSTM(深度学习)长时依赖建模、端到端中长期时序预测物理一致性差、数据需求量大物理知情AI物理规律约束、高可靠性极端天气、长期气候变化模型复杂、计算成本高。

专注:太空算力、AI infra、异构调度、大模型成本工程 528

js面向对象的理解

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

小魔仙的成长之路 537

我的世界进阶模组开发教程——制作机械动力附属模组

摘要: Create是Minecraft的机械动力模组,其代码结构分为多个关键模块: 数据生成系统:通过CreateRecipeProvider基类实现配方自动化生成,支持多步骤序列化装配配方(SequencedAssemblyRecipeGen),采用建造者模式链式调用; 注册管理:CreateRegistrate扩展了Registrate库,统一管理方块、流体、实体等注册,集成标签页分类和工具提示定制; 伤害系统:DamageTypeTagGen为机械伤害(如钻头、风扇火焰)定义原版兼容的标签; 客户端

qq_24992377的博客 2083

js面向对象怎么理解

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

style_1997的博客 883

WPF实战项目十七(客户端):数据等待加载弹框动画

1、在Common文件夹下新建文件夹Events,新建扩展类UpdateLoadingEvent。2、新建一个静态扩展类DialogExtensions来编写注册和推送等待消息弹框方法。3、在ViewModel中添加实现类NavigationViewModel。5、在View文件夹下新建用户控件ProgressView.xmal。4、在主窗体MainView.xmal中给弹窗界面命名。6、在MainView.xmal.cs中注册消息。

yigu4011的博客 2346

大数据工程中的数据血缘分析工具比较

数据血缘(Data Lineage)是大数据治理中的核心组成部分,它描述了数据从源头到目标的完整流动路径。系统介绍数据血缘的核心概念和技术原理比较主流开源和商业数据血缘工具的功能特点提供数据血缘分析的实践指南和选型建议本文首先介绍数据血缘的基本概念,然后深入分析其技术原理和实现方法,接着比较主流工具的特点,最后通过实际案例展示应用场景。数据血缘(Data Lineage): 描述数据从源头到目标的完整流动路径,包括所有转换和处理步骤元数据(Metadata)

大数据洞察的博客 900

JavaScript 面向对象详解

JavaScript面向对象

LBJ辉的前端天地 5260

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

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

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

sy_7546的博客 799

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

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

精雕软件(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

Statistics and Machine Learning Toolbox

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

浅谈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、付费专栏及课程。

余额充值