位置: 编程技术 - 正文

理解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:oci_num_rows()的用法_Oracle函数
  • 在Linux系统中安装Samba服务器
  • imac夜间模式
  • 出差预借差旅费属于什么科目
  • iframe frame
  • 劳务公司已开票,可款项未收到,税票多久有效
  • php处理并发有哪些技术
  • 大前端入门指南
  • linux0.11编译
  • 发票跨月发现开错该怎么办?
  • java中同步有两种方法
  • 交强险怎么报警
  • 税控盘的进项税在哪里申报
  • 建筑企业缴纳资源税
  • 招待费发票可以开专票吗
  • 职工伙食费账务处理
  • 转让古董收入
  • 小规模纳税人取得普通发票可以抵扣吗
  • 单位的车辆
  • 工资社保医保计算
  • 企业收到退回的银行汇票多余款项时,应作的会计处理有
  • 将税后利润首先用于增加投资
  • 为什么预付账款是资产
  • 子公司提取盈余公积
  • 发票打印机格式不对
  • 没有发票也可以报销
  • 2021会计实操视频
  • 研发费用是管理费用的比例多少不正常
  • sqlserver1053怎么解决
  • mysql的外键
  • mysql5.7.27安装
  • 微软补丁修复时出现蓝屏现象
  • linux服务端
  • linux下32位机与64位机基本数据类型长度区别介绍
  • windows xp登录无法进入桌面
  • win7安装cad2022
  • win10资源管理器频繁无响应
  • cocos2dx入门
  • unity做app开发
  • cocos2d-x教程
  • cocos2d怎么用
  • cocos2dx3.0的label字体去描边
  • js中创建对象的几种方法
  • jquery?
  • nodejs增删改查
  • unity3d中用四元数 Quaternion来对一个坐标点进行旋转的初步体会
  • bootstrapcdn
  • 要使物体从静止状态转变为运动状态需要对这个物体什么
  • js实现功能
  • javascript中的数据类型分为两大类
  • 安卓模拟器测试
  • recyclerview瀑布流效果
  • 十万元版增值税税率13发票最高开多少
  • 固定资产评估增值的税务处理
  • 车辆缴纳购置税多少钱
  • 税务如何稽查
  • 供热企业税收优惠政策执行情况
  • 青年文明号创建目标
  • 辽宁地税电子税票查询
  • 国家税务总局黑龙江电子税务局下载
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设