位置: 编程技术 - 正文

理解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题)

  • 销项税大于进项税时怎么处理
  • 会计中级工作年限查得严么
  • 生育津贴到公司账上怎么发给员工
  • 30万免税超过30万
  • 贸易公司成本核算不准确的后果
  • 房屋置换以房换房政策2019
  • 房贷利息抵个税细则 两套房
  • 金税三期个人所得税税率
  • 没收到发票可以做成本吗
  • 从农民个人手里获取资源
  • 进项税申报但未抵扣
  • 增值税月报时间
  • 财税2009年59号解读
  • 自然人股东转让股权如何避税
  • 金融性负债总额是什么
  • 会计计提和冲回
  • 资产处置损益借贷方向表示什么
  • 维修费属于印花税
  • Win10打开浏览器后自动弹出查找框
  • 其他流动负债有利息吗
  • 计算工业总产值指数
  • 收回已核销的坏账并入账是什么意思
  • 土地拍卖资金交到哪里
  • cmd. exe 程序错误
  • 企业向股东发放现金股利
  • 为什么u盘里的文件无法删除
  • PHP:oci_cancel()的用法_Oracle函数
  • 财务费用属于期间汇转账户吗
  • 货物退回的会计处理
  • wordpress.org
  • 整体租赁合同
  • 一般纳税人向小规模纳税人开专票
  • 还贷款利息会计怎么做账
  • iframe写法
  • php文件上传用什么请求方法
  • 保安行业税率是多少
  • golang char
  • 宝塔怎么做?
  • 购进商品发生溢余的核算
  • 红字发票开错可以重开吗
  • 会计单据可以用什么代替
  • 小规模纳税人水利基金税率
  • 提供劳务收入包含什么
  • 支付宝提现到对公账户要收手续费吗
  • 所得税申报报表
  • 税金及附加需不需要计提
  • 以汽车投资作为投资项目
  • 补贴费用申请书怎么写
  • 员工奖励的现金有哪些
  • 固定资产递延资产
  • 资金占用费如何计算企业所得税
  • 怎样理解企业财务会计的定义
  • 会计凭证装订后应当加贴封条
  • 实收资本应补缴哪些税
  • 公司的应付票据
  • mysql 基本操作
  • Mysql中explain作用详解
  • sql中函数 判断是否是null
  • 电脑开机一直显示windowsxp
  • linux增加命令
  • 不能用鼠标
  • win8.1怎么安装appx没有许可证
  • windows10电脑重置电脑
  • 如何封禁
  • linux用中文怎么说
  • spyblast.exe - spyblast是什么进程 有何作用
  • windows10周年更新
  • win7任务管理器怎么打开
  • win7报错0xc0000428
  • 华为nova7耳机怎么戴
  • window10自动开机怎么回事
  • nodejs的socket
  • jQuery Validation PlugIn的使用方法详解
  • js代码怎么使用
  • javascript模拟器
  • python中简单的例子
  • 合肥税务局招聘信息
  • 设计费需要交税吗
  • 江苏印花税申报操作流程
  • 税务年报截止日期2022
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设