-
什么是对象
对象是一个整体,对外提供一些操作 -
什么是面向对象
使用对象时,只关注对象提供的功能,不关注其内部细节
比如JQuery -
面向对象是一种通用思想,并非只有编程中能用,任何事情都可以用
-
面向对象编程(OOP)的特点
抽象:抓住核心问题
封装:不考虑内部实现,只考虑功能使用
继承:从已有对象上,继承出新的对象
-多重继承
-多态 -
对象的组成
方法——函数:过程、动态的
属性——变量:状态、静态的
原型——prototype
-
什么是原型
原型是class,修改他可以影响一类元素
在已有对象中加入自己的属性、方法
原型修改对已有对象的影响 -
为Array添加sum方法
给对象添加方法,类似于行间样式
给原型添加方法,类似于class
<script>
var arr1=new Array(12,55,34,78,676);
var arr2=new Array(12,33, 1);
Array.prototype.sum=function () //class
//arr1.sum=function () //行间样式
{
var result=0;
for(var i=0;i<this.length;i++)
{
result+=this[i];
}
return result;
};
alert(arr1.sum());
alert(arr2.sum()); //?
</script>
- 原型的小缺陷
无法限制覆盖
用混合方式构造对象
- 原则
构造函数:加属性
原型:加方法
<script>
function CreatePerson(name, qq) //构造函数
{
this.name=name;
this.qq=qq;
}
CreatePerson.prototype.showName=function () //原型
{
alert('我的名字叫:'+this.name);
};
CreatePerson.prototype.showQQ=function ()
{
alert('我的QQ号:'+this.qq);
};
var obj=new CreatePerson('blue', '258248832');
var obj2=new CreatePerson('张三', '45648979879');
obj.showName();
obj.showQQ();
obj2.showName();
obj2.showQQ();
alert(obj.showName==obj2.showName);
</script>