封装

1、 封装数据

a)      只能依赖变量的作用域来实现封装特性,es6中可以通过symbol创建私有属性

var myObject = (function(){

var __name = 'sven'; // 私有( private)变量

return {

getName: function(){ // 公开( public)方法

return __name;

}

}

})();

console.log( myObject.getName() ); // 输出: sven

console.log( myObject.__name ) // 输出: undefined

2、 封装实现

封装不仅仅是隐藏数据,还包括隐藏实现细节,设计细节以及对象类型,例如slice我们只拿来使用就可以了而不用关心内部是怎么实现的。只通过暴露API来通信

3、 封装类型

封装类型是静态类型语言中一种重要的封装方式。对于 JavaScript 的设计模式实现来说,不区分类型是一种失色,也可以说是一种解脱。

4、 封装变化

通过封装变化的方式,把系统中稳定不变的部分和容易变化的部分隔离开来,在系统的演变过程中,我们只需要替换那些容易变化的部分,如果这些部分是已经封装好的,替换起来也相对容易。这可以最大程度地保证程序的稳定性和可扩展性。

最新文章

  1. ios语音识别
  2. chrome插件编写之新版hello world
  3. [maven] 使用Nexus创建maven私有仓库
  4. 经典排序算法---冒泡排序(Bubble Sort)
  5. CSS 初体验之Line-height
  6. ASP.NET 学习小记 -- “迷你”MVC实现(1)
  7. gif录制工具
  8. lua 基本
  9. Asp.net web服务处理程序(第六篇)
  10. php信用卡卡号验证函数
  11. [Oracle] Listener的动态注册
  12. ES 6 : Math对象的扩展
  13. 配置Server Side TAF
  14. Javascript高级程序设计笔记 <第五章> 引用类型
  15. Web/app端自动化测试对比
  16. 学习笔记——二叉树相关算法的实现(Java语言版)
  17. Luogu3825 NOI2017 游戏 2-SAT
  18. Codeforces Beta Round #25 (Div. 2 Only)
  19. shell脚本之基础
  20. springbatch---->springbatch的使用(五)

热门文章

  1. android 8.0 悬浮窗 最简demo
  2. destoon聚合搜索页面模板
  3. 10-赵志勇机器学习-meanshift
  4. 水晶报表 VS2010 应用
  5. 转载:cnn学习之卷积或者池化后输出的map的size计算
  6. redis 键值对 有效期设置
  7. R 语言解压目录下的所有gz文件
  8. 网卡监控脚本--nagios
  9. HSA AMD异构计算架构
  10. 《Linux就该这么学》培训笔记_ch07_RAID和LVM