javascript笔记—面向对象

2022-12-02,,

什么是对象:

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

什么是面向对象

使用对象时,只关注对象提供的功能,不关注其内部细节,例如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(,,,);
var arr2 = new Array(,,,,);
Array.prototype.sum = function(){
var result = ;
var i = ;
for(i=;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里。

javascript笔记—面向对象的相关教程结束。

《javascript笔记—面向对象.doc》

下载本文的Word格式文档,以方便收藏与打印。