位置: 编程技术 - 正文

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

  • 税控系统怎么登录
  • 广告费的税前扣除是多少
  • 购买财务软件的会计分录怎么做
  • 房地产企业的会计核算
  • 企业所得税预缴后亏损
  • 企业股权无偿转让不缴增值税
  • 跨区域涉税事项报告表怎么核销
  • 技术合同免税备案流程2022年
  • 所得税可以预交吗现在
  • 小规模纳税人季度申报
  • 纳税总额和实际上缴税费总额
  • 管理费用预测
  • 软件行业个人所得税
  • 单式记账法是什么意思呀
  • 企业生产设备发生的日常维修费用
  • 确认应收账款不确认收入
  • 应收应付明细表模板图片
  • 当月发票入库核销怎么算
  • 公司不给发公司
  • 企业收购股权要交税吗
  • 停车场领的定额发票要怎么报税?
  • 增值税普通发票有什么用
  • 免税和零税率和税率区别
  • 实收资本入账价值怎么算
  • centos7安装部署cacti教程
  • 七喜v8笔记本
  • linux用途是什么
  • win11怎么关闭打开软件的弹窗
  • 投标保证金退回的利息计入什么费用
  • 企业加计扣除活动
  • 备用金怎么填写记账凭证
  • 增值税已认证抵扣
  • 交易性金融资产的交易费用计入哪里
  • 公司处理固定资产车辆怎么开发票
  • 多申报缴纳的企业年金
  • 支付职工教育经费
  • vue springboot
  • 关系抽取系统的要求
  • 腾讯产品面经
  • 保障金纳入地方财政吗
  • 国家研发费用补助
  • 餐饮发票数量单价都填0可以用吗
  • 扣供应商的货款进项税要转出吗
  • 防伪税控技术
  • 应付账款怎么处理
  • 工会经费教育经费福利费计提比例
  • 在什么情况下会冻结微信零钱
  • 研发投入算到产值里吗
  • sql server的 update from 语句的深究
  • sqlserver完全删除
  • win2000蓝屏0x0000007b
  • 拖放文件到此处来添加文件是什么意思
  • win8系统的电脑
  • ubuntu 网络设置命令
  • 1.cpp执行的是什么文件
  • 硬盘版win10
  • Win10年度更新(RS1)怎么样升级?升级方法一览
  • 红帽linux6.0安装教程
  • 显示演示模式
  • nginx实现负载均衡的流程
  • windows 8连接vpn设置方法(消费者预览版)
  • 打开应用通知栏
  • python生成密钥
  • opencv与pil
  • 拼图java代码
  • mongoose怎么用
  • jquery移动div到另一个div中
  • shell操作
  • javascript数组去重set方法
  • shell脚本传参数给命令
  • win10下python
  • Javascript & DHTML 实例编程(教程)(三)初级实例篇1—上传文件控件实例
  • javascript基础
  • xmpp client
  • 成都市税务局公示名单公布
  • 北京大兴开发区房价
  • 担保机构和银行的区别
  • 国家税务局关于印发的通知
  • 常州市三免卡
  • 税务副科级干部交流
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设