首页 > 代码库 > object面向对象

object面向对象

<!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>

 

object面向对象