一、封装的概念

  面向对象的类包括两大成员,一种是暴露给外部的接口,另一种是只在类内部才能访问的私有属性。在这个类被实例化成对象后,用户只能通过操作给定的接口来访问该类内部的私有属性,这就被称为面向对象的封装性。

二、ES5如何实现封装

  这里只说一种方法,就是通过闭包。

可以看下这个例子,在构造函数(也就是ES6的类)中,定义了私有变量_gender,为了和其他属性区分开,这里加一个前缀“_”,在实例化后的对象中,gender对外是完全不可见的。想要知道gender是男是女,只能通过我在类暴露给你的getGender方法获取,除了获取,不能做其他的任何操作了,这就是封装的特点:类负责将私有变量隐藏起来,外界对私有变量的所有访问只能通过提供的接口实现。

二、ES6如何实现封装

和ES5的实质是完全一样的,只是写法不同。

转载:https://www.cnblogs.com/zhangnan35/p/10539165.html

转载于:https://www.cnblogs.com/10ve/p/10540121.html

JavaScript面向对象--封装相关推荐

  1. JavaScript面向对象——封装及相关原理解析

    <JavaScript设计模式>面向对象编程--封装及相关原理解析 说明:本人编写js习惯不写分号:文章中的源码可根据自己的编程风格修改. 面向对象 面向对象编程就是将你的需求抽象成一个对 ...

  2. JavaScript面向对象-封装

    文章目录 1.封装的概述 2.代码展示 3.效果展示 1.封装的概述 封装:将代码放到同一个地方,方便后续的多次使用. 好处:可以优化代码,减少代码的重复性(冗余). 生活例子:将所有的菜放在冰箱里, ...

  3. 《JavaScript面向对象精要》——1.8 原始封装类型

    本节书摘来自异步社区<JavaScript面向对象精要>一书中的第1章,第1.8节,作者:[美]Nicholas C. Zakas 译者: 胡世杰 更多章节内容可以访问云栖社区" ...

  4. javascript对XMLHttpRequest异步请求的面向对象封装

    对XMLHttpRequest异步请求的面向对象封装,需要的朋友可以参考下 function CallBackObject() { this.XmlHttp = this.GetHttpObject( ...

  5. Javascript 面向对象全新理练之数据的封装

    JavaScript 是一种非常灵活的面向对象程序设计语言,它与传统的强类型的面向对象程序设计语言(如 C++,Java,C# 等)有很大不同,所以要实现如 C++.java.C# 当中的一些特性就需 ...

  6. (转)Javascript 面向对象编程(一):封装

    它们都是非常优秀的Javascript读物,推荐阅读. 笔记分成三部分.今天的第一部分是讨论"封装"(Encapsulation),后面的第二部分和第三部分讨论"继承&q ...

  7. Javascript 面向对象编程(一):封装 ——转自阮一峰博客

    Javascript 面向对象编程(一):封装 作者: 阮一峰 日期: 2010年5月17日 学习Javascript,最难的地方是什么? 我觉得,Object(对象)最难.因为Javascript的 ...

  8. 前端 JavaScript 设计模式前奏--面向对象-封装、继承、多态

    JavaScript 面向对象 如图所示: 1. 什么是面向对象 1. 面向对象的概念 2. 面向对象的三要素: 继承/封装/多态 ⭐️ 3. JS 的应用举例 4. 面相对象的意义 --- 数据结构 ...

  9. 面向对象的 JavaScript:封装、继承与多态

    本文作者:家园工作室研发组成员 @维尔希宁 本文出处: 面向对象的 JavaScript:封装.继承与多态​blog.lenconda.top 本文遵循署名-非商业性使用-禁止演绎3.0 未本地化版本 ...

最新文章

  1. (转)spring aop(下)
  2. java从property中取值,JAVA读取PROPERTIES配置文件
  3. 基于3G网络的汽车防盗报警系统视频监控设计
  4. ubuntn终端缩小_缩小可以通过终端执行的工具
  5. eclipse的SVN插件设置忽略文件
  6. 深度学习——简化的神经网络模型和概念补充
  7. 异步并发利器:实际项目中使用CompletionService提升系统性能的一次实践
  8. 优Tech分享|YouTube推荐系统算法梳理
  9. Markdown 使用指南
  10. nginx 配置虚拟机实例
  11. Intouch2014无法自动启动西门子驱动DASSIDIRECT.EXE的原因及解决办法
  12. linux系统中 为mysql还原数据库_linux中mysql还原数据库命令
  13. dp题目总结(1)——基础
  14. 插画师如何确定自己的风格?教你如何一步步找到自己绘画风格!
  15. 使用async.whilst要注意的地方
  16. 机场部队都在用的无人机干扰设备----- TFN MR09
  17. 售前工作感悟:思想决定售前深度!
  18. 如何将pdf转换成ppt呢?
  19. 联想电脑尺寸在哪里看_联想笔记本型号在哪里看 笔记本电脑品牌有哪些
  20. 搜索引擎不收录网站页面的常见原因

热门文章

  1. WebSocket客户端连接成功后,返回的socket里有用的字段
  2. S/4HANA for Customer Management里的搜索分页处理 1
  3. 如何在ubuntu上安装virtualbox的driver module vboxdrv
  4. linux中grep命令查找目录下,linux中查找grep与find命令的使用
  5. java生成docx_用java新建一系列文件.docx
  6. java python混合开发_Go+Python双语言混合开发
  7. cdr文件过大导出pdf打不开_PDF文件过大怎样压缩?这才是压缩PDF最简单的方法
  8. 在python中使用关键字define定义函数_python等价于'define func()'或如何在python中注释掉函数调用...
  9. centos7源代码安装mysql5.7_CentOS7源码编译安装MySQL5.7.11
  10. java有趣的技术分享ppt_技术分享 | 关于 MySQL Online DDL 有趣的验证