什么是对象:
对象是一个整体,对外提供一些操作。
什么是面向对象:
使用对象时,只关注对象提供的功能,不关注其内部细节,例如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里。
时间: 2024-12-14 18:04:43