js面向对象

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>








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值