<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
</style>
</head>
<body>
<script type="text/javascript">
/*var obj = new Object();//Object对象没有自己的属性和方法
obj.name = 'zhang';
obj.qq = '123456789'
obj.showName = function()
{
alert('我的名字叫:'+ this.name);
}
obj.showQQ = function()
{
alert('我的QQ号:' + this.qq);
}
obj.showName();
obj.showQQ();*/
function createPerson(name,qq)//构造函数
{
var obj = new Object();//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('hu','2397492347');
obj.showName();
obj.showQQ();
var abc = createPerson('liu','348563287');
abc.showName();
abc.showQQ();*/
//问题1.新建对象的时候没有new;2.obj.showName不等于abc.showName函数不相等--资源浪费
function createPerson(name,qq)//解决问题1
{
//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;系统自己会做的事情
}
//解决问题2
createPerson.prototype.showName=function(){
alert('我的名字叫:'+ this.name);
}
createPerson.prototype.showQQ=function(){
alert('我的QQ号:' + this.qq);
}
//构造函数加属性(不一样的东西),原型加方法(一样的东西)
var obj = new createPerson('hu','2397492347');
var abc = new createPerson('liu','348563287');
obj.showName();
abc.showQQ();
</script>
</body>
</html>