JS,抽象工厂模式
web前端-js教程
本篇文章主要给大家总结了一下作者在学习JS抽象工厂模式时的经验和总结,有兴趣的朋友跟着学习下吧。仿酷狗音乐播放器源码,vue路由 vscode,ubuntu 睡眠不下去,tomcat缓存优化,sqlite命令导入csv,js图片手势缩放插件,asp有前端框架吗,ebay爬虫软件乌托邦,模拟登录 php,SEO优化课程设计,医疗整容网站模板,网页版贪吃蛇,jsp 网页导航模板,手机导航页面源码下载,宁志交警队网站管理系统宽屏,樱花PHP授权程序lzw
以下就是作者学习中遇到的问题以及代码实例,最后还给大家关于JS抽象工厂模式的学习做了总结。bootstrap.js源码,Ubuntu中终止进程,查看tomcat启动的命令,爬虫啥含义,php集成工具,新民品牌抖音seo优化大概费用lzw
抽象工厂模式(Abstract Factory)就是通过类的抽象使得业务适用于一个产品类簇的创建,而不负责某一类产品的实例。安卓仿迅雷源码,vscode c 系统变量,ubuntu 引导异常,tomcat 自带jre,sqlite3源码行数,爬虫的工作很危险吗吗,php网站 缓存,庐江seo推广公司,cpa weibo008电影网站源码,网页php采集视频源码,html5响应式模板下载lzw
JS中是没有直接的抽象类的,abstract是个保留字,但是还没有实现,因此我们需要在类的方法中抛出错误来模拟抽象类,如果继承的子类中没有覆写该方法而调用,就会抛出错误。const Car = function() { }Car.prototype.getPrice = function() {return new Error('抽象方法不能调用')}
实现
面向对象的语言里有抽象工厂模式,首先声明一个抽象类作为父类,以概括某一类产品所需要的特征,继承该父类的子类需要实现父类中声明的方法而实现父类中所声明的功能:
/*** 实现subType类对工厂类中的superType类型的抽象类的继承* @param subType 要继承的类* @param superType 工厂类中的抽象类type*/const VehicleFactory = function(subType, superType) { if (typeof VehicleFactory[superType] === 'function') { function F() { this.type = '车辆' } F.prototype = new VehicleFactory[superType]() subType.constructor = subType subType.prototype = new F() // 因为子类subType不仅需要继承superType对应的类的原型方法,还要继承其对象属性 } else throw new Error('不存在该抽象类')}VehicleFactory.Car = function() { this.type = 'car'}VehicleFactory.Car.prototype = { getPrice: function() { return new Error('抽象方法不可使用') }, getSpeed: function() { return new Error('抽象方法不可使用') }}const BMW = function(price, speed) { this.price = price this.speed = speed}VehicleFactory(BMW, 'Car') // 继承Car抽象类BMW.prototype.getPrice = function() { // 覆写getPrice方法 console.log(`BWM price is ${this.price}`)}BMW.prototype.getSpeed = function() { console.log(`BWM speed is ${this.speed}`)}const baomai5 = new BMW(30, 99)baomai5.getPrice() // BWM price is 30baomai5 instanceof VehicleFactory.Car // true
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
在js中如何实现判断文件类型大小
在js中如何实现登录需要滑动验证
在Angular中如何实现下拉框模糊查询功能
在Nodejs中有关crypto模块安全知识(详细教学)
在angularjs中如何实现分页和搜索功能
使用vue如何引入ueditor及node后台配置
在Node.js中如何搭建小程序后台服务
在js中有关文件加载优化方面的问题
使用nodejs+mongodb+vue如何配置ueditor