<!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>
时间: 2024-10-06 03:06:09