面向对象的三大特性
01 封装:提高代码的复用性,降低代码的冗余度,信息隐藏,把方法内部的实现隐藏,不需要关注内部实现的细节。
使用对象来封装函数和变量
代码示例
//01 封装的简单说明
//001 观察以下杂乱无关的语句,它们仅仅只是一堆无意义的全局变量
var name = "乘风波浪";
var actors = ["彭于晏","赵丽颖","邓超","李荣浩"];
var showTime = "2017-1-28 - 2017-2-28";
var director = "韩寒";
var type = "喜剧";
var play = function () {
//播放......
};
//002 把上面的变量封装到对象中(更具体&有意义)
var film = {
name:"乘风破浪",
actors:["彭于晏","赵丽颖","邓超","李荣浩"],
showTime:"2017-1-28 - 2017-2-28",
director:"韩寒",
type:"喜剧",
play:function () {
//播放......
}
}
02 继承:在编程语言中,继承指的是子类获取父类的属性和方法的行为;在js中,某个对象(子对象)获得另外一个对象(父对象)的属性和方法的行为
//继承的简单示例
//001 创建一个空的对象
var nullObj = {};
// 上面的对象film拥有了很多的属性和方法
//002 设法让nullObj拥有film中所有的属性和方法
//方法一:自己重新写一遍
//方法二:通过某种方式来获得,比如遍历该对象,然后完成赋值
for(var k in film)
{
nullObj[k] = film[k];
}
for(var k in nullObj)
{
console.log(nullObj[k]);
}
03 多态:
- 多种形态,对于相同的操作(指令),不同的对象表现出不同的行为。
- 隐藏不同,多用于强类型语言,而js属于弱类型,在这方面表现不多。