javascript笔记—面向对象

什么是对象:

对象是一个整体,对外提供一些操作。 

什么是面向对象:

使用对象时,只关注对象提供的功能,不关注其内部细节,例如jquery

面向对象是一种通用思想,并非只有编程中能用,任何事情都可以用。

 

javascript中得面向对象:

面向对象编程(OOP)的特点:

抽象:抓住核心问题

封装:不考虑内部实现,只考虑功能使用

继承:从已有对象上,继承出新的对象

—多重继承

—多态

对象的组成:

—方法—函数:过程、动态的

—属性—变量:状态、静态的

用工厂方式构造对象:构造函数

<script>
//用工厂方式构造对象
function createPerson(name,sex){ //构造函数
var obj = new Object();
obj.name = name;
obj.sex = sex;
obj.showName = function(){
alert('我的名字叫'+this.name);
};
obj.showSex = function(){
alert('我是'+this.sex+'的');
};
return obj;
}
var p1 = createPerson('blue','nan');
p1.showName();
p1.showSex();
</script>

工厂方式的缺点:

1、没有new

2、每个对象都有自己的函数,这是极其浪费资源的。

 

this:当前的方法,属于谁。

Array类:不具备实际的功能,只能用来构造对象

arr对象:真正有功能的东西,被类给构造出来

 

用prototype方式来解决工厂方式问题。

<script>
var arr1 = new Array(12,5,8,4);
var arr2 = new Array(44,5,6,7,8);
Array.prototype.sum = function(){
var result = 0;
var i = 0;
for(i=0;i<this.length;i++){
result+=this[i];
}
return result;
};
alert(arr1.sum());
alert(arr2.sum());
</script>

 

原型的一个重要的功能(应用):可以扩展系统的对象

<script>
function Person(name,sex){
this.name = name;
this.sex = sex;
};
Person.prototype.showName = function(){
alert(this.name);
};
Person.prototype.showSex = function(){
alert(this.sex);
};
var p = new Person('blue','nan');
p.showName();
p.showSex();
</script>

实例:面向对象的选项卡

把面向过程的程序,改写成面向对象的形式

原则:不能有函数套函数的情况,但可以有全局变量

所有的代码都必须在window.onload里。

 

posted @ 2015-05-22 18:50  走不了你  阅读(134)  评论(0编辑  收藏  举报