需要封装的原因:1、通过封装可以减少代码的冗余,使代码看起来不复杂,减少不必要的代码;2、对象只用对外提供与其它对象交互的必要接口,可以对内部数据提供不同级别的保护,以防止程序中无关部分意外的改变或错误使用了对象的私有部分,可提升安全性。
本教程操作环境:windows10系统、javascript1.8.5版、Dell G3电脑。
JavaScript为什么要封装
封装是面向对象的三个基本特征之一,将现实世界的事物抽象成计算机领域中的对象,对象同时具有属性和行为(方法),这种抽象就是封装.
大家在日常开发过程中,具有相同处理逻辑的代码通常会进行函数的封装来减少代码的冗余,使代码看起来更优雅美观,那么
当多个实体对象他们拥有相同的一些属性和行为(方法)时,自然也要把这些相同的属性和行为抽象出来,减少不必要的代码。
封装的重要特性:数据隐藏。
对象只对外提供与其它对象交互的必要接口,而将自身的某些属性和实现细节对外隐藏,通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。这样就在确保正常交互的前提下,保证了安全性,不需要关心对象实现的方法即可使用这个对象。
函数(function)–最简单的封装
函数对任何语言来说都是一个核心的概念。通过函数可以封装任意多条语句,而且可以在任何地方、任何时候调用执行。
如何封装: 将零散的的语句写进函数的花括号内,成为函数体,然后就可以调用了。
未封装代码:
var body = document.getElementsByTagName("body")[0]; var h1 = document.createElement("h1"); body.style.backgroundColor = "green"; h1.innerText = "绿了"; body.appendChild(h1);
缺点:
-
易被同名变量覆盖–因为在全局作用域下声明的变量,容易被同名变量覆盖
-
立即执行–解析器读取到此处立即执行
封装代码:
function makeGreen() { var body = document.getElementsByTagName("body")[0]; var h1 = document.createElement("h1"); body.style.backgroundColor = "green"; h1.innerText = "绿了"; body.appendChild(h1); }
优点:
-
避免了全局变量–因为存在函数作用域(函数作用域画重点,以后要考)
-
按需执行–解析器读取到此处,函数并未执行,只有当你需要的时候,调用此函数即可
-
提高代码重用性
【