浅谈javascript面向对象理解

Java8动态生成SFunction:基于字段名的Lambda表达式实践 本文深入探讨了在Java8中如何基于字段名动态生成SFunction,以解决MyBatis Plus的LambdaQueryWrapper在动态查询场景下的局限性。通过核心原理LambdaMetafactory的解析和手把手的代码实现,展示了如何将字符串字段名转换为类型安全的Lambda表达式,从而实现真正动态、类型安全的查询条件构建与通用数据处理,显著提升代码的灵活性与安全性。 阅读详情

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 指向这个方法的调用者
《Linux GPU 驱动核心机制:面向图形与 AI 计算的 DRM 内存管理与任务调度》 目录 本文以缓冲区对象(BO)生命周期为主线,系统解析 Linux DRM 子系统中 GPU 驱动的核心机制。涵盖 GEM 与 TTM 内存管理、dma-buf/dma-fence 共享同步、GPU 调度与地址空间管理,结合 amdgpu、Xe 等驱动代码,深入剖析其设计动机与实现逻辑。旨在填补中文领域对 GPU 内核机制系统性讲解的空白,为图形与 AI 计算场景下的内存泄漏、同步死锁等疑难问题提供可追溯的分析路径。 阅读详情

相关推荐

DMA学习笔记

DMA(direct memory access,直接内存访问),是一种避开CPU,可以直接对外设和内存进行访问的技术,可以实现外设与内存、内存之间、外设之间的数据的访问和搬移。

weixin_46220498的博客 3111

JavaScript初学必备 之 面向对象

面向对象编程思想学习

tic_tac_toe的博客 1447

库卡C4控制柜首次上电

本文详细介绍了如何使新购的库卡机器人(以KRC4为例)达到正常运行状态。首先,必须正确连接机器人尾部和控制柜底部的各种线缆,包括动力线缆、编码器线、SmartPad线和安全回路线缆等。特别强调,电源线和蓄电池线的正确连接至关重要,避免硬插以防损坏。此外,机器人与控制柜之间需连接地线以防止漏电。文章还提到,开机前需检查电机保护器开关,并确保所有线路连接正确。开机后,需提升用户权限至安全维护员级别,通过系统配置激活安全相关通讯参数。最后,文章详细解释了X11安全回路的接线方式,强调双通道信号的重要性,并提醒不同

2202_75959322的博客 1838

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

TensorFlow_PyTorch实战:构建AI人工智能回归模型

回归分析是机器学习的核心任务之一,用于预测连续型目标变量(如房价、股票价格、用户留存时间等)。基础线性回归模型的数学原理与代码实现多项式回归模型的过拟合处理与正则化技巧自定义数据集加载与数据预处理流程动态图(PyTorch)与静态图(TensorFlow)的编程范式对比模型评估指标与可视化分析方法核心概念:对比两大框架的架构设计,解析回归模型核心组件数学原理:推导线性回归的假设函数、损失函数及优化算法算法实现:提供TensorFlow和PyTorch的完整代码示例项目实战。

AI天才研究院 1429

virtualbox虚拟机里面最顶部没有控制、设置和帮助等选项

无意中操作,导致virtualbox虚拟机里面最顶部没有控制,设置和帮助选项  virtualbox虚拟机窗口显示如下如: 如何设置,窗口显示如下图所示呢: virtualbox虚拟机窗口模式显示设置,切换可以通过如下图所示操作进行切换: PS:一定要是右边的Ctrl+C

WEL测试 8780

js面向对象的理解

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

小魔仙的成长之路 537

rbf神经网络python预测代码_RBF神经网络预测

%用RBF网络来预测股票走势clcclear%归一化数据input=[0 0 0 0 0 0.0277;0.0177 0.0292 0.0184 0.0122 0.0264 0.0492;0.0374 0.0946 0.0393 ...

weixin_39951419的博客 1889

js面向对象怎么理解

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

style_1997的博客 883

YOLOv10改进策略【模型轻量化】| MoblieNetV3:基于搜索技术和新颖架构设计的轻量型网络模型

本文记录的是基于MobileNet V3的YOLOv10目标检测轻量化改进方法研究。的模型结构是通过得来的,其中的基础模块结合了的深度可分离卷积、的线性瓶颈和倒置残差结构以及MnasNet中基于挤压和激励的轻量级注意力模块,使模型在性能、效率和灵活性方面都具有显著的优势。本文在替换骨干网络中配置了原论文中的small和large2种模型,以满足不同的需求。

Limiiiing的博客 514

ADAMS软件二次开发:ADAMS软件API接口详解

API(Application Programming Interface,应用程序编程接口)是一种允许不同软件应用程序之间进行交互的接口。在ADAMS软件中,API提供了与软件内部功能直接交互的能力,使用户能够通过编写自定义代码来扩展软件的功能,实现自动化操作或集成到其他系统中。ADAMS软件的API主要基于C++和Python,允许用户通过这些编程语言来访问和控制ADAMS的模型、仿真和分析功能。API接口的使用,需要对编程语言有一定的了解,同时也需要熟悉ADAMS软件的基本操作和模型结构。

kkchenjj的博客 1863

JavaScript 面向对象详解

JavaScript面向对象

LBJ辉的前端天地 5260

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

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

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

sy_7546的博客 799

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

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

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

weixin_30613727的博客 382

浅谈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

浅谈javascript学习方法

转载自品略图书馆http://www.pinlue.com/article/2020/05/1000/2610427546631.html JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。一起来看看学习方法,仅供大家参考!谢谢!   Js给人那种感觉的原因多半是因为它如下的特点:   A:本身知识很抽象、晦涩难懂,如:闭包、内置对象、DOM。   B:本身内容很多,如函数库、对象库就一大堆。   C:混合多种编程思想。它里面不但牵涉面向过程编程..

yihuliunian的博客 659
上一篇: 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、付费专栏及课程。

余额充值