位置: 编程技术 - 正文

极简主义法编写JavaScript类(极简主义分析)

编辑:rootadmin

推荐整理分享极简主义法编写JavaScript类(极简主义分析),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:极简主义写作,极简主义分析,极简主义法则,极简主义著作,极简主义的概述,极简主义的概述,极简主义的概述,极简主义的概述,内容如对您有帮助,希望把文章链接给更多的朋友!

这个所谓的"极简主义法"是荷兰程序员Gabor de Mooij提出来的,这种方法不使用this和prototype,代码部署起来非常简单,这大概也是它被叫做"极简主义法"的原因。下面就介绍如何使用极简主义法完成JavaScript的封装和继承

1. 封装

  首先,它也是用一个对象模拟"类"。在这个类里面,定义一个构造函数createNew(),用来生成实例。

  然后,在createNew()里面,定义一个实例对象,把这个实例对象作为返回值。

  使用的时候,调用createNew()方法,就可以得到实例对象。

  这种方法的好处是,容易理解,结构清晰优雅,符合传统的"面向对象编程"的构造,因此可以方便地部署下面的特性。

2. 继承

  让一个类继承另一个类,实现起来很方便。只要在前者的createNew()方法中,调用后者的createNew()方法即可。  先定义一个Animal类:

  然后,在Cat的createNew()方法中,调用Animal的createNew()方法

极简主义法编写JavaScript类(极简主义分析)

  这样得到的Cat实例,就会继承Animal类。

3. 私有属性和私有方法

  在createNew()方法中,只要不是定义在cat对象上的方法和属性,都是私有的。

  上例的内部变量sound,外部无法读取,只有通过cat的公有方法makeSound()来读取。

4. 数据共享

  有时候,我们需要所有实例对象,能够读写同一项内部数据。这个时候,只要把这个内部数据,封装在类对象的里面、createNew()方法的外面即可。

  然后,生成两个实例对象:

这时,如果有一个实例对象,修改了共享的数据,另一个实例对象也会受到影响。

  极简主义,看起来很美好,但是也有缺点,首先是不能使用instanceof 判断对象所属的类,"cat1 instanceof Cat"无法通过,另外,极简主义虽然摆脱了使用原型链的缺点(属性不能私有、创建、继承对象不够直观),但也暴露了没用原型链的弊端:每一次生成一个实例,都必须为重复的内容,多占用一些内存。

总结

以上所述是小编给大家介绍的极简主义法编写JavaScript类,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对积木网网站的支持!

微信小程序实现图片放大预览功能 需求:当点击图片时,当前图片放大预览,且可以左右滑动实现方式:使用微信小程序图片预览接口我们可以看到api需要两个参数,分别通过下面的data-

微信小程序选择图片和放大预览图片功能 视频中,老师也是看着官方文档,为学生们讲解,微信提供了系统的方法来选择图片.wx.chooseImage({})此方法是用来选择图片的方法,具体使用如下:data:{avatarUrl:n

微信小程序自动客服功能 微信小程序最近比较火爆,所以抽空做了个客服机器人的小程序,来回答之前坦克游戏中的常见问题。当然这个小程序也很容易修改为其他类型的自动

标签: 极简主义分析

本文链接地址:https://www.jiuchutong.com/biancheng/369712.html 转载请保留说明!

上一篇:JavaScript屏蔽Backspace键的实现代码(javascript屏蔽元素)

下一篇:微信小程序实现图片放大预览功能(微信小程序实现微信支付)

  • 自然人电子税务局
  • 个人住房5年后买卖如何交税?
  • 对方给我开的增值税专票丢失
  • 纳税调整减少额是什么意思
  • 涉及免所得税及减半所得税的业务如何做账
  • 私人网银可以转到对公账户吗?
  • 土地使用权评估原则
  • 预收货款增值税纳税义务发生时间如何确定
  • 废旧物资回收经营范围
  • 会计科目的设置
  • 高速路费电子发票怎么打印
  • 车辆挂靠收取管理费怎么做账
  • 原材料盘盈审批后冲减
  • 销项负数发票会计摘要
  • 进项税转出属于什么科目
  • 对方收到发票不付款怎么办
  • 土地+n
  • 进项发票认证抵扣时间有限制吗
  • 盈亏平衡点定价法例题及答案
  • 财付通转出的钱能还回来吗
  • 耕地占用税计入无形资产吗
  • 当月未出账费用
  • 房地产企业土地出让金抵减销项税额
  • 低值易耗品包括哪些内容?属于什么科目?
  • 其他业务收入跨年调整
  • 员工安置费标准出台
  • 增值税税收类型有哪些
  • 九斑蛾,瑞士 (© Thomas Marent/Minden Pictures)
  • 房地产预缴所得税计算公式
  • 捐款怎么处理
  • novelai本地部署电脑要求
  • 宝塔面板要安装什么环境
  • 工程结算 增值税
  • 真发票假业务会坐牢吗
  • python字典添加数据
  • 出资比例不等于100%
  • 大华摄像头海康威视录像机
  • 普通动产和特殊动产物权变动
  • 收到服务费的增值税发票
  • 企业付美金外汇要交税吗
  • 用友T3财务报表没有数据
  • 购货发票属于是什么凭证
  • mysql 5.7.1
  • 生产成本与管理企业经营实战感想
  • 用友t6操作流程
  • 未计提坏账准备发生坏账如何处理
  • 固定资产残值怎么做账务处理
  • 个人与公司交易需要纳税吗
  • 营业外收入的核算内容
  • 怎么处理固定资产残值
  • 长期借款短期利息怎么算
  • 建筑 营改增
  • 小规模纳税人购入货物收到增值税专用发票
  • 计提税金如何进项抵扣
  • 工程施工明细科目结转吗
  • sqlserver连接失败怎么办
  • mysql5.6允许远程连接
  • win7断电后无法启动
  • 给Windows Server 2008设一个简单密码
  • win10系统预览版
  • win7更新和安全在哪里
  • windows无法更改设置
  • Linux桌面环境选择
  • centos5.4
  • fedora 图形界面
  • win7关闭uac是什么意思
  • python占位
  • js模拟touch
  • python利用for循环求1到100的奇数之和
  • rpg游戏脚本已经被备份
  • shell编程$1
  • Python爬取网易云音乐歌单内歌曲歌手封面播放地址
  • unity3d赛车游戏毕业设计
  • Python 使用requests模块发送GET和POST请求的实现代码
  • 江苏税务开票申报操作
  • 小米之家可以
  • 北京昌平区租房价格
  • 跨市变更税务登记要多久
  • 十堰市税务大厅
  • 教育用地性质可以更改么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设