js面向对象

来源:互联网 发布:宣城太守知不知翻译 编辑:程序博客网 时间:2024/06/16 21:02
js面向对象
一、什么是对象
对象可以看成一个属性的集合。对像一般有属性和方法构成,方法的实质是函数,而属性的实质是变量。
二、什么是面向对象
面向对象可以理解为不需要去了解对像的内部结构,就可以使用它。像我们的date 对像的方法可以获取和设置时间,但我们并不了解其内部原理。
三、面向对象(抽风机)
抽象:抽取核心信息
封装:不考虑内部实现,重点会使用就行。
继承:继承父类的功能,还能有自己的功能。
四、创建对象的方法(本质上都是把“属性”和“方法”,封装成一个对象)
1、基本模式:
<script>var obj=new Object();obj.name='blue';obj.qq='258248832';obj.showName=function (){alert('我的名字叫:'+this.name);};obj.showQQ=function (){alert('我的QQ号:'+this.qq);};obj.showName();obj.showQQ();var obj2=new Object();obj2.name='张三';obj2.qq='5468978546';obj2.showName=function (){alert('我的名字叫:'+this.name);};obj2.showQQ=function (){alert('我的QQ号:'+this.qq);};obj2.showName();obj2.showQQ();</script>
2、工厂模式(原料、加工、出厂)
<script>function createPerson(name, qq)//构造函数{//原料var obj=new Object();//加工obj.name=name;obj.qq=qq;obj.showName=function (){alert('我的名字叫:'+this.name);};obj.showQQ=function (){alert('我的QQ号:'+this.qq);};//出厂return obj;}var obj=createPerson('blue', '258248832');obj.showName();obj.showQQ();var obj2=createPerson('张三', '45648979879');obj2.showName();obj2.showQQ();</script>
*this指的是谁用这个函数,就是指谁。
*工厂方式的缺点a:没使用new.b:函数的使用重复造成系统资源的浪费。

加上new:
<script>function createPerson(name, qq)//构造函数{//系统偷偷替咱们做://var this=new Object();//加工this.name=name;this.qq=qq;this.showName=function (){alert('我的名字叫:'+this.name);};this.showQQ=function (){alert('我的QQ号:'+this.qq);};//也会偷偷做一些://return this;}var obj=new createPerson('blue', '258248832');var obj2=new createPerson('张三', '45648979879');obj.showName();obj.showQQ();//alert(obj.showName==obj2.showName);</script>
3、原型模式——prototype
<script>function createPerson(name, qq)//构造函数{//系统偷偷替咱们做://var this=new Object();//加工this.name=name;this.qq=qq;//也会偷偷做一些://return this;}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>








0 0
原创粉丝点击