3-14 说明一下JS封装的原理
封装
封装是面向对象的三个基本特征之一,将现实世界的事物抽象成计算机领域中的对象,
对象同时具有属性和行为(方法),这种抽象就是封装.
重要特性
数据隐藏。对象只对外提供与其它对象交互的必要接口,而将自身的某些属性和实现细节对外隐藏,
通过这种方式,对象对内部数据提供了不同级别的保护,
以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。
这样就在确保正常交互的前提下,保证了安全性,不需要关心对象实现的方法即可使用这个对象。
封装方式
函数
因为存在函数作用域,避免了全局变量
但因为在全局作用域下声明的变量,容易被同名变量覆盖
对象
避免同名的变量或函数名冲突
但是对象如果被覆盖,则全部失效
工厂模式
解决了代码重复的问题
但是不能反映出生成对象是同一个原型对象的实例,也容易被同名变量覆盖
函数闭包+匿名自调用
利用闭包函数作用域的特点,实现保护常量,达成开闭原则
函数名与页面上其他脚本定义的函数冲突的可能性降低
但是不能重复调用
构造函数
JS中的构造函数可以用来创建特定类型的对象。也可以创建自定义的构造函数,从而自定义对象类型的属性和方法
可以通过 instanceof 操作符确认实例是否后属于构造函数
对象–自定义访问器属性(Object.defineProperty)
设置set、get方法从而达到对值的保护

浙公网安备 33010602011771号