js 面向对象的三大特性

article/2025/1/18 21:19:49

一。封装

所谓封装的概念,是不希望暴露函数中属性或者方法的地址,使外界不能操作,但是可以暴露特有的公有接口,可以利用接口操作。

function hello(){var name='xiaoming';this.getname=function(){return name;}}

封装在平日里用的比较多  ,去除了很多的代码复用 

二。继承

在ECMAscript中描述了原型链的概念,并将原型链作为实现继承的主要方法,其基本思想就是利用原型让一个引用类型继承另一个引用类型的属性和方法。举个例子

function People(){this.name = "小明";this.age = 18;
}
People.prototype.say = function(){console.log('你好')
}
function SubPeople(){this.g = 90;
}
SubPeople.prototype = new People();
var p = new People();
var c = new SubPeople();
console.dir(c)
console.log(p)

 

 

当查找一个实例的属性时,会先从这个实例的自定义属性上找,如果没有的话通过__proto__去实例所属类的原型上去找,

如果还没有的话再通过原型的__proto__到Object的原型上去找,一直找到头 如果没有就undefined。

 

三。多态

多态指为不同数据类型的实体提供统一的接口。相同的消息可能会送给多个不同的类别之对象,而系统可依据对象所属类别,

引发对应类别的方法,而有不同的行为。简单来说,所谓多态意指相同的消息给予不同的对象会引发不同的动作。(百科全书)

js重写

class hello {
say(e) {
console.log(e)

}
}
class subhello extends hello {
say(e) {
console.log(e, "被重写")

}
}

subhello= new subhello
subhello.say(1)

实现重写只要在要重写的函数下面在定义一个同名的函数就可以了。

 

 

 

js重载

概念 重载是指函数或者方法有相同的名称,但是参数个数或类型不相同的情形,这样的同名不同参的函数或者方法之间,互相称之为重载函数或方法。

接着上边的代码   其实js是没有重载的  但是我们可以实现类似重载的功能

    fun = new hello(3)array = []function Say() {if (typeof arguments[1] == "string") {console.log(arguments[0], arguments[1])} else if (typeof arguments[1] == "object") {console.log(arguments[1])} else if (typeof arguments[0] == "string") {console.log(arguments[0])} else if (typeof arguments[0] == "ayyar") {console.log("数组")}}Say("a")Say(array)Say("a", "a")Say("a", "array")Say(fun, array)

输出如下

 

转载于:https://www.cnblogs.com/netUserAdd/p/10417770.html


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

相关文章

JS面向对象三大特性

首先对象的声明语法 1.通过Object var object new Object(); //动态添加属性。方法 object.nametest; object.method function(){}2.对象字面量 var object {name:test,method:function(){} }3.构造函数 function Object(name){this.name name,this.method function(){…

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;以回车结束。 输出格式 按…