位置: 编程技术 - 正文

理解javascript封装(js封装是什么意思)

编辑:rootadmin

推荐整理分享理解javascript封装(js封装是什么意思),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript的理解,js封包,js 函数封装,javascript的理解,js封闭函数,javascript封装,javascript封装,js 函数封装,内容如对您有帮助,希望把文章链接给更多的朋友!

封装可以被定义为对对象的内部数据表现形式和实现细节进行隐藏。通过封装可以强制实施信息隐藏。

在JavaScript中,并没有显示的声明私有成员的关键字等。所以要想实现封装/信息隐藏就需要从另外的思路出发。我们可以使用闭包的概念来创建只允许从对象内部访问的方法和属性,来达到封装的要求。

基本方式一般来说,我们学用的有三种方法来达到封装的目的。

使用this.XXX来声明一个变量,然后再声明getXXX、setXXX等取值、赋值的方法。使用this._XXX来声明一个变量,然后再声明getXXX、setXXX等取值、赋值的方法。利用“函数作用域”这一个概念来做。1. 门户大开型

使用这种方法实现的封装,虽然实现了取值器与赋值器以保护私有属性。但是在实际使用中,私有属性依然可以从外部访问,所以从根本上讲,没有实现封装。

2. 用命名规范进行区别

使用这种方法与第一种类似,区别在于使用不同的命名来保护私有属性的使用。但是,从实际应用来说其仍然没有实现封装。

理解javascript封装(js封装是什么意思)

3. 使用函数作用域

由于在JavaScript的函数中声明的变量是有作用域的,所以使用这种方法可以避免在外部直接访问私有属性。基本达到封装所要求的内容。

这里要注意的是,我们在函数的内部,可以使用this.XXX以及var来声明变量。区别是使用this.XXX声明的变量在外部是可以访问的。使用var声明的变量,由于受到函数作用域的保护,在函数的外部是无法直接访问的。

4. 使用函数作用域的变形

这种方法是直接返回一个构造器的执行。且这里的构造器是一个内嵌函数。

这种方法的优点是“在内存中只会存在一份。因为其他静态方法被声明在构造器之外,所以它们不是特权方法。”

判断一个方法是否应该被设计为静态方法的原则是“这个方法是否会访问私有属性”。如果它不需要,那么将其设计为静态方法会更有效率,因为它只会被创建一份。

常量我们可以使用“只有取值器,没有赋值器”的方式来实现常量。

利弊1、利处

封装保护了内部数据的完整性;封装使对象的重构更轻松;弱化模块间的耦合,提高对象的可重用性;有助于避免命名空间冲突;……2、弊处

私用方法很难测试;必须与复杂的作用域链打交道,使错误调度更困难;容易形成过度封装;JavaScript并不原生支持封装,所以在JavaScript中实现封装存在复杂性的问题;

标签: js封装是什么意思

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

上一篇:学习Javascript面向对象编程之封装(javascript要学到什么程度)

下一篇:javascript每日必学之继承(javascript题)

  • 增值税进项税抵扣时间
  • 个人卖给公司车需要什么手续
  • 简述入伙、退伙的含义与退伙的形式
  • 资产负债表上的资产是原值还是净值
  • 增值税加计递减额,这个科目如何使用
  • 房地产开发企业预缴增值税
  • 职工与企业解除劳动合同后医保怎么办
  • 研究开发费用的加计扣除100%
  • 跨区经营怎么交税
  • 多交税款抵税会计分录
  • 购买成品入库并结转成本会计分录怎么写?
  • 以物易物差价印花税
  • 大额承兑换小额承兑会计分录
  • 土地增值税清算比例的计算
  • 不同项目的进项税可以抵销项税吗
  • 免征土地增值税的有哪些
  • 住房公积金做账怎么看交了哪些人
  • 当期可抵扣进项税额包括进项转出额吗
  • 创新券兑付怎么操作
  • 工程施工什么时候确认收入
  • 挂靠的工程个人所得税怎么交?
  • 企业债券收入要在所得税前扣除吗
  • 外协加工费会计分录
  • 4月发票能入1月吗
  • 厂房转让会计分录
  • 建筑企业自持商是指
  • 缴纳印花税和残值的比例
  • 网速不稳定的解决方法
  • mac如何关闭开机启动
  • 印花税计提与缴税的区别
  • checkingmedia什么意思戴尔笔记本
  • 增值税专用发票查询系统官方网站
  • 发票填开的基本规定?
  • 时间序列多步预测方法
  • 机械干租和湿租的税率
  • dom-to-image原理
  • jquery教程chm
  • 简述跨期摊提账户
  • 退社保基金怎么办理
  • rabbitmq中文手册
  • LVS负载均衡群集的常用调度算法包含哪几种?
  • 中医经营范围,营业执照怎么写
  • 固定资产处置是当月还是下月
  • 如何在税控盘上变更一般纳税人
  • 下列支出计入销售费用账户借方的是
  • 会计利润属于什么会计科目
  • 收到服务费发票怎么做账
  • mysql数据库压力测试工具
  • 小规模纳税人转一般纳税人当月如何申报
  • 消费税的计税方式有哪几种?
  • 这个营业外支出怎么算
  • 商标注册费计入哪个科目
  • 网上购物退款后未退回物品怎么投诉
  • 旅游业开具的是什么证明
  • 个体工商户怎样为员工缴纳社保
  • 手写账目表格怎么做
  • 收到了对方的作业怎么办
  • 应收账款的余额百分比
  • mysql数据库优化面试题
  • mysql联合索引生效原则
  • win7系统怎么把桌面文件放到d盘
  • Windows Server 2008下Backup功能全通透
  • win10首个正式版发布日期
  • WIN10系统崩溃如何自救?
  • 如何修改apache
  • 2021年win10累积更新
  • windows 8whql
  • 如何检测装有监控器?
  • linux里chmod用法
  • opengles和vulkan哪个好
  • javascript有哪些类型
  • 用jquery实现隔行变色
  • node.js开发实战详解
  • javascript设计简单计算机
  • js闭包实现
  • javascript面向对象编程指南
  • 深圳国家税务总局
  • 企业党支部怎么称呼
  • 店面转让,房租怎么交税
  • 杭州国税电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设