原文链接:https://www.3mooc.com/front/articleinfo/133
封装性:
封装性体现在2个方面:
(1)将自然界的事物,使用编程语言进行描述,就体现了封装性
例如:使用编程语言描述一个人:
姓名:周瑜
技能:玩火
使用PHP编程语言:
class Zhou{
public $name = ‘周瑜’;
public function playFire(){
}
}
使用JavaScript编程语言描述:
Function Zhou(){
This.name = ‘周瑜’;
This.play = function(){
}
}
(2)将重用的代码,提取到公共的地方,体现了封装性
或者将变量、函数,使用对象进行收编
例如,下面的代码:
这种写法,有2点不足:
(1)就会在计算机的内存中创建3个对象:checkUser、checkPass、checkEmail
(2)上面的定义都是定义了3个全局变量,如果将来你在加载别的js文件的时候,容易出现全局变量被污染
针对上面所说的不足之处,我们就采用面向对象的封装性进行收编
这样,在内存中,只需要创建一个对象即可,其次,由于验证的功能,属于verify对象的,就减少了被污染的概率
除了上面的写法,我们还可以采用工厂的模式:
继承性:
JavaScript的继承性体现在prototype原型上面
例如:实现弹出框的功能,一个居中显示,一个右对齐显示,如果我们这样定义,就会在每个对象里面都维护一份create方法
如果我将create功能,提取到该构造器的原型身上,这样每个对象里面都是空的,需要改功能的时候,再从原型中继承而来
通常我们在封装一些可重用的插件的时候,都会将重用性强的代码,提取到原型中
不一样的地方(弹出框位置不一样),通过传参数实现
多态性:
多态性在弱类型的语言中,体现的不是很明显,但是在JavaScript中,多态性的体现就表现在this的使用上
同样一个对象this,在不同的环境下,代表的对象是不一样的,一个对象的多种状态
网友评论