JS面向对象三大特性

article/2025/1/18 20:59:37

首先对象的声明语法
1.通过Object

var object = new Object();
//动态添加属性。方法
object.name='test';
object.method = function(){}

2.对象字面量

var object = {name:'test',method:function(){}
}

3.构造函数

function Object(name){this.name = name,this.method = function(){}
}
//实例化
var  o = new object(name);
面向对象三大特性 封装,继承,多态

1.封装:将一些属性或方法封装起来,使外部无需关心内部是怎样运行,直接调用接口即可
当你需要隐藏一些属性和方法时,就可以将这些属性和方法封装起来,然后通过一个外部可以调用的接口进行调用。

function Person(name,age,sex){this.name = name;//公有属性this.age = age;var sex = sex;//私有属性function test(){console.log('test')}//私有方法}Person.prototype.walk=function(){console.log('走');}//共有方法var man = new Person('xiaoming',13,'男');// man.test();//私有方法外部无法访问console.log(man.sex)//undifind// man.walk();//访问共有方法

2.继承
“子承父业”,实现代码重用通过prototypecall实现组合继承

function Person(name,age,sex){this.name = name;this.age = age;this.sex = sex;}//定义一个“人”类Person.prototype.method=function(){console.log(this.name);}function Student(name,age,sex,score){Person.call(this,name,age,sex);//通过call改变this指向,继承属性this.score = score;}//学生类Student.prototype = new Person();//通过原型,继承方法Student.prototype.constructor=Student;//手动改变构造函数var a = new Student('zs',14,'男',90);console.log(a);a.method();

在这里插入图片描述
3.多态:顾名思义多种状态,我的理解是多个对象调用同一个接口返回不同的结果
即将“做什么” 和”谁来做“区分开。
如下模拟多态。

var Sound = function(animal){if(animal instanceof Dog){//通过有Dog构造函数创建console.log('汪汪汪');}else if(animal instanceof Duck){//如果是由Duck构造函数创建console.log('嘎嘎嘎');}}var Duck = function(){};var Dog = function(){};Sound(new Duck());Sound(new Dog());

调用不同的对象会返回不同的结果
在这里插入图片描述
这里已经实现多态的定义了,但是如果我们还要增加一个对象,我们会不断修改Sound函数。
我们可以借助原型对象优化代码
如下

var Sound = function(animal){animal.aSound();}var Duck = function(){};Duck.prototype.aSound=function(){console.log('嘎嘎嘎');}var Dog = function(){};Dog.prototype.aSound = function(){console.log('汪汪汪');}var Bird = function(){};Bird.prototype.aSound = function(){console.log('叽叽叽');}Sound(new Duck());Sound(new Dog());Sound(new Bird());

在这里插入图片描述
将方法绑定该对象的原型对象上,我们在添加新对象时不用修改Sound函数


http://chatgpt.dhexx.cn/article/EpG9kMeu.shtml

相关文章

javaScript面向对象的三个基本特征介绍

了解过面向对象的同学应该都知道,面向对象三个基本特征是:封装、继承、多态,但是对于这三个词具体可能不太了解。对于前端来讲接触最多的可能就是封装与继承,对于多态来说可能就不是那么了解了。 封装 在说封装之先了解一下封装…

javascript面向对象的三大特性

面向过程和面向对象 区别 面向过程:关注的是过程 中的每一个环节 吃蛋炒饭:买鸡蛋→买米→蒸米→炒蛋→炒米→混合→搅拌→蛋炒饭 面向对象:关注的是让对象 做事情 找一个对象(老公或老婆).做蛋炒饭 面向对象编程 …

JS面向对象的三大特性简述

1.语法 1.1 对象的声明语法 1.1.1通过字面量方式新建对象 var obj {}var obj1 {name: hhupp,call: function() {console.log(CALL)}}console.log(obj, obj)console.log(obj1, obj1)obj1.call() 1.1.2通过new关键词新建对象(不推荐--和通过字面量方式新建对象并无…

一个小实验告诉你,内存速度到底比硬盘快多少!!!

近期在Linux下做了一个小实验,亲身体会了内存的速度到底比硬盘快多少。 实验步骤如下: 1. df #查看磁盘信息 2. dd if/dev/zero of /dev/shm/file bs1M count3000 3. dd if/dev/zero of/mnt/file bs1M count3000由此可见,内存的读取速…

硬盘和内存的速度

1. 简介 随着电子技术的发展,内存和硬盘的速度都在提高,但同时,旧技术因为应用场景依然存在,速度上有个大致的理解上有必要的。 2. 内存的速度 3. 存储介质的速度 操作平台 读 写 NVME PCIE SSD(gen3 4x) 2.1 GB/s 1.2 GB/s…

CPU、寄存器、内存、磁盘、网络性能分析

介绍 寄存器 最靠近 CPU 的控制单元和逻辑计算单元的存储器,就是寄存器了,它使用的材料速度也是最快的,因此价格也是最贵的,那么数量不能很多。 存储器的数量通常在几十到几百之间,每个寄存器可以用来存储一定的字节…

《手机网速、CPU、内存和闪存》的速度制衡之道

一、手机网速、CPU、内存与闪存的速度制衡之道: 手机响应速度的快慢很大程度上是多方面因素共同作用的结果,例如高性能的处理器、快速的内存和闪存标准、良好的网络链接性能、优化完善的操作系统等等,这就是Iphone手机的流畅体验要远远好于大…

类比 -高速缓存Cache/内存/磁盘读写速度类比

1、计算机设备、组件数据传输速度类比 计算机设备、组件读类比机械硬盘0.1G/S蜗牛量级(60m/h) , 以机械盘为基准固态盘1.3G/S龟速量级(780m/h),13倍机械硬盘内存30G/S跑步量级(23.4km/h&#x…

内存的速度和CPU缓存速度比较

转载于:https://blog.csdn.net/moyeshuier/article/details/103943355 这之前,我必须先讲一下cpu cache 内存三个组件在运行程序时候的关联,有了这个基础我后面才能讲锁。 那今天讲的是缓存一致性,首先要理解我说的缓存是什么意思…

计算机内存加速,电脑内存运行速度如何提升

电脑内存运行速度如何提升是一个经常提到的话题,需要了解一些基本的电脑知识来处理,下面学习啦小编介绍内存升级提高电脑运行速度的办法。 电脑内存运行速度提升方法 1.调整高速缓存区域的大小。所谓高速缓存,是指系统在读取磁盘、光盘上的数据时,采取“预读取”技术,也 就…

GPU 内存结构

GPU 和CPU通过 VLink 或者PCLe 相连。 每个SM 又含有多个cuda core,多个SM共享全局内存,通过L2 高速缓存和全局内存进行相连,不同代的GPU之间的体系结构有所不同。 右边是一个SM 上的 内存,有共享内存,局部内存&…

计算机专业电脑内存,电脑内存大小是否和速度有关?

我们总觉得内存大一点,就是运行速度一定是快。现在市面上的电脑,配置已经很强大了,动不动内存就上12G、16G的笔记本、一体机电脑随处可见。电脑已经到了瓶颈且性能过剩的年代,其实内存越大就代表电脑速度越快,这里有些误区,今天就让小编跟大家说说内存这点事儿。 计算机运…

linux怎么看内存时序,内存速度和时序重要么

描述 最近是跟内存耗上了,其一是手里没有其它硬件可测,更重要的是想趁着这段时间,把内存与性能之间的影响都慢慢测一下。今天测的就是时序与内存性能之间的关系了。时序很重要吗?答案是肯定的,但是时序对内存性能的影响到底有多大呢?下面就详细的测试一下。 用来测试的内…

手机测试内存速度的软件,如何查看手机内存速度?手机内存读取速度测试_手机内存速度多少算正常...

如何查看手机内存速度?手机内存速度多少算正常?下面小编就给大家介绍下手机内存读取速度测试发方法! 今早,手机内存问题再度引起热潮,很多朋友都在讨论手机内存速度问题。那么问题来了,如何正确测试自己手机…

双倍数据率同步動態隨機存取記憶體(英語:,簡稱DDR SDRAM)

双倍数据率同步動態隨機存取記憶體(英語:,簡稱DDR SDRAM)為具有雙倍資料傳輸率的SDRAM,其資料傳輸速度為系統時脈的兩倍,由於速度增加,其傳輸效能優於傳統的SDRAM。 DDR SDRAM 研發商SamsungJED…

古风排版java_古风排版java版-Go语言中文社区

7-7 古风排版(20 分) 中国的古人写文字&#xff0c;是从右向左竖向排版的。本题就请你编写程序&#xff0c;把一段文字按古风排版。 输入格式&#xff1a; 输入在第一行给出一个正整数N(<100)&#xff0c;是每一列的字符数。第二行给出一个长度不超过1000的非空字符串&#…

古风排版问题

7-7 古风排版 中国的古人写文字&#xff0c;是从右向左竖向排版的。本题就请你编写程序&#xff0c;把一段文字按古风排版。 输入格式&#xff1a; 输入在第一行给出一个正整数N&#xff08;<100&#xff09;&#xff0c;是每一列的字符数。第二行给出一个长度不超过1000…

古风排版 (

中国的古人写文字&#xff0c;是从右向左竖向排版的。本题就请你编写程序&#xff0c;把一段文字按古风排版。 输入格式 输入在第一行给出一个正整数 NN&#xff0c;是每一列的字符数。第二行给出一个长度不超过 10001000 的非空字符串&#xff0c;以回车结束。 输出格式 按…

开源中文古风排版样式,简约美观,超级好用!

只推荐用过的好用工具&#xff0c;关注DD帮你提高效率 如果有一篇古诗&#xff0c;要放在Web页面上&#xff0c;你会如何排版呢&#xff1f;如果要实现类似语文书中的那种效果&#xff0c;有没有办法快速实现呢&#xff1f; 今天给大家推荐一个非常好用的开源项目&#xff0c;就…