位置: 编程技术 - 正文

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

  • 一般纳税人收到专票怎么认证
  • 一般纳税人企业所得税多久申报一次
  • 计提印花税会计分录最新
  • 建筑施工企业增值税税率是多少
  • 劳务报酬收入是否含税
  • 专票红冲要不要收回发票联
  • 增值税纳税申报表模板
  • 实缴注册资本交税吗
  • 增值税申报失败怎么撤销
  • 销售折扣和现金折扣的增值税
  • 专票红冲账务处理
  • 企业年金个人所得税最新规定
  • 营改增后如何纳税
  • 销售商品发生的运费计入什么科目
  • 股东借款转实收资本需要什么附件
  • 收到知识产权专用发票
  • 公司商务卡可以日常消费
  • 以前年度长期股权投资漏记调整
  • 发票红冲钱怎么退给对方
  • 不付供应商尾款了怎么清账
  • 查验发票真伪新旧有哪些网站?
  • 节假日加班工资是平时的几倍?
  • 生产企业出口退税操作流程视频
  • 自收自支事业单位
  • 财政总预算会计分为三级
  • 结转与结余
  • 一般户收到基本户转账的会计分录
  • 上年度职工工资总额
  • 为什么利息收入是负数
  • 销售赠送怎么做账
  • 商品条码续展费怎么退
  • win10专业版怎么改成家庭版
  • 电脑显示器模糊不清晰是什么原因
  • 从银行提取备用金填制什么凭证
  • win10系统如何设置开机启动软件
  • linux中gedit命令
  • 电脑dat文件怎么打开
  • pyecharts绘制柱状图动态图
  • php的get
  • wordpress主题dux
  • 工业企业计入制造费用的工资还需要交工会经费吗
  • uniapp前端面试题
  • netbeans ide 8.1
  • 实时视频功能
  • 前端发起请求怎么设置
  • 金蝶利息收入结转怎么弄
  • php支付接口开发
  • 金税盘中的发票修复是什么意思
  • lldb python
  • 帝国cms如何做网站
  • 成本核算的科目有哪些
  • 小规模加工企业加工费会计分录
  • 调整事宜
  • 工程结算审核资料清单
  • 个体生产经营所得税
  • 小规模纳税人进口货物增值税税率
  • 对公收到几毛测试费怎么做账
  • 应交增值税怎么求
  • 账簿的设置和登记要点
  • mysql压缩包安装教程8.0.20
  • XP系统怎么调节屏幕亮度
  • macOS 10.12 Beta 7更新了什么 macOS 10.12 Beta7更新内容汇总
  • centos安装编译环境
  • win8 boot manager
  • win8不能安装软件
  • react native 应用
  • 如何创建node项目
  • node.js教程详细
  • 可重复进行编程的可编程器件有 ( )
  • Unity3D游戏开发引擎
  • javascript怎么用
  • python xml.etree.ElementTree遍历xml所有节点实例详解
  • android PopupWindow显示位置设置
  • 交错了税可以退吗
  • 重庆国税电子税务登录
  • 西北地区的沙尘暴
  • 贵州省税务局193项业务
  • 民办非企业暂行
  • 豫麦336
  • 加拿大鹅海关被税交多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设