位置: 编程技术 - 正文

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

  • 税收滞纳金是什么债权
  • 收不回的款项怎么处理
  • 工会支出发票抬头是企业名称可以吗
  • 营改增对房地产行业的影响
  • 超范围经营是不是就等于无证经营
  • 哪些纳税人可以申请存量留抵退税
  • 冲减管理费用是红字还是在贷方
  • 物流辅助服务属于什么项目
  • 不同外币之间的折算
  • 固定资产属于净资产的哪一项
  • 成本法下的后续计量
  • 自建厂房可以不办理房产证吗
  • 去年多摊销的费用今年怎么做账务处理?
  • 公司贷款直接打供应商账户还需要发票吗
  • 增值税进项大于销项,要全部认证吗
  • 增值税附加税计入什么会计科目
  • 长期待摊费用无发票怎么处理
  • 购方收到红字发票怎么办
  • 增值税差额征收企业所得税主营业务收入应按什么计入
  • 分步法所分的成本计算步骤应是实际的生产步骤
  • 常用的索赔费用计算方法
  • 可以全额抵扣的发票
  • 自己种的苗木开发票要什么手续
  • 人工成本全额扣除吗
  • 税款已缴纳可以作废申报吗
  • 年终一次性奖金个税计算
  • 金银镶嵌首饰在哪个环节交消费税
  • php判断链表是否有环
  • 会计科目暂存款是什么意思
  • 存出保证金计入资产负债表什么项目
  • wordpress测试
  • 小米路由器599元
  • PHP:connection_aborted()的用法_misc函数
  • 营业外收入主要来源
  • jupyter用法
  • js工厂模式创建对象
  • phpcms 数据库配置文件
  • 出口退税进项税额转出怎么申报
  • 试运行收入会计分录
  • 罚款记入其他应收款科目
  • 收到的普票金额多开了怎么处理呢
  • 小微企业可以不交税吗
  • 小规模收入超过30万的会计分录大全
  • 物流公司进项包括什么
  • 计提提成是什么意思
  • 债权投资和其他债权投资举例
  • 罚款可以直接在12123
  • 所得税费用本期金额怎么算
  • 固定资产计提折旧的原则
  • 筹建期的印花税怎么算
  • 订单式生产的企业有哪些
  • 油卡办理需要多久?
  • 库存商品的出售
  • 公司补缴社保怎么查不到
  • 投资性房地产的范围
  • 透明终端架构
  • ubuntu怎么更改用户名
  • windows8如何安装
  • win7 mysql
  • hdaudpropshortcut.exe是什么进程 作用是什么 hdaudpropshortcut进程查询
  • cad2007字体怎么调大小
  • neo是什么意思中文翻译
  • win7睡眠设置在哪
  • uploadify文件上传
  • android mark
  • django orm外键
  • python怎么学啊
  • 使用vue-cli快速搭建vue项目
  • jquery弹出窗口
  • bootstrapped 5%
  • 屏幕模式自适应模式
  • [置顶]马粥街残酷史
  • javascript例题
  • settimeout和setinterval在安卓机无效
  • javascript中Date format(js日期格式化)方法小结
  • jQuery animate easing使用方法图文详解
  • 移动应用界面设计形考1答案
  • 河南省地方税务局公告2017年第4号
  • 城镇土地使用税税率
  • 纳税服务理念2023
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设