js 面向对象的三大特性:封装,继承、多态
2024-10-17 16:08:27
一:什么是封装?
封装的定义:就是对象内部的变化对外界是透明的,不可见的。
封装的场景:
在写项目的过程中,有时候不同页面,会有相同的功能,我们还需要每个页面都写一遍吗?额,,,,其实也可以写的,只不过不嫌累 就i行,皮一下下~~
例如:人员库项目中,部门管理中部门主管的模糊搜索,和新增部门的模糊搜索两个地方相同的功能,我们可不可以将模糊搜索的方法进行封装呢,然后,在不同页面点击触发的时候调用呢?这样我们是不是 就不必要 写大量重复的代码了,也会让我们的代码更加清晰。
// 部门主管的模糊搜索
remoteMethod(val) {
this.query.keyWord = val;
this.$store.dispatch('department/querySupervisorid', this.query)
},
封装的好处:使用封装,可以达到代码的复用,使代码更加简洁,不会重复写很多的代码。
二:什么是继承
继承的定义:我们想要一个对象能够访问另一个对象的属性,同时,这个对象还能够添加自己新的属性或者覆盖可访问的另一个对象的属性,我们实现这个目标的方式叫做“继承”。
实现继承的方式:
function Foo(x, y) {
this.x = x
this.y = y
}
Foo.prototype.sayX = function() {
console.log(this.x)
}
Foo.prototype.sayY = function() {
console.log(this.y)
} function Bar(z) {
this.z = z
this.x =
}
Bar.prototype = Object.create(Foo.prototype) // 注意这里,该方法时在FOO的原型上创建Bar的原型属性的空对象
Bar.prototype.sayZ = function() {
console.log(this.z)
}
Bar.prototype.constructor = Bar var o = new Bar()
o.sayX() //
o.sayZ() //
这种继承方式被称为“构造函数继承”。
三:什么是多态
多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。本质上就是将”做什么“和”谁去做以及怎么做“分开,就是消除不同对象的耦合关系。
重载:方法名相同,参数不同,表示不同的方法
init() {
this.test(, )
this.test()
},
test(num1, num2) {
if(arguments.length===) {
console.log('', num1, num2)
} else {
console.log('', num1)
}
},
重写:方法名相同,后者覆盖前者
test1() {
console.log('重写1')
},
test1() {
console.log('重写2')
},
打印结果是: 重写2
最新文章
- [PHP源码阅读]array_pop和array_shift函数
- Linux下用arptables防arp攻击
- EXTJS 常用控件的使用
- 透明窗口(窗口上面文字图片等内容不透明)的实现(使用SetLayeredWindowAttributes API函数)
- 大数据系列修炼-Scala课程09
- 《HTML5与CSS3权威指南》读书笔记(下册)—CSS3篇
- mynotebook
- 20.如何从app业务逻辑提炼api接口
- 吴恩达机器学习笔记52-异常检测的问题动机与高斯分布(Problem Motivation of Anomaly Detection&; Gaussian Distribution)
- springboot情操陶冶-web配置(四)
- js的各种验证
- JQuery UI之Autocomplete(3)属性与事件
- 05-02 Java 一维数组、内存分配、数组操作
- 为什么你作为一个.NET的程序员工资那么低?(转)
- 基于spring-cloud的微服务(3)eureka的客户端如何使用IP地址来进行注册
- linux rpm之已安装包校验、rpm包中文件提取
- jdk版本对应数字
- Spring入门(四)— 整合Struts和Hibernate
- 激活老电脑的第二春:内存盘为Chrome浏览器做缓存
- swift基础知识
热门文章
- linux 安装配置 sublime 进行 python 开发
- Android OS的image文件组成
- webpack4学习笔记
- mysql 与 oracle 的时间查询
- python 关于django 2.X from django.contrib.auth.views import login
- 文本超出显示省略号/数字英文字母折行有关css 属性/显示两行,第二行省略号显示css方法
- 自己动手写Redis客户端(C#实现)2 - SET请求和状态回复(set)
- 机器A定时发文件给机器B-FTP实现
- 多项式 之 快速傅里叶变换(FFT)/数论变换(NTT)/常用套路【入门】
- ZJOI2019Day2 游记