Javascript 创建对象的三种方式

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('infoo', '333333');
var obj2=createPerson('infoo', '222222');

alert(obj.showName==obj2.showName);//两者不等,资源浪费
function CreatePerson(name, qq)        //构造函数,常用的
{
    this.name=name;
    this.qq=qq;
}

CreatePerson.prototype.showName=function ()    //原型
{
    alert('我的名字叫:'+this.name);
};

CreatePerson.prototype.showQQ=function ()
{
    alert('我的QQ号:'+this.qq);
};

var obj=new CreatePerson('infoo', '123');
var obj2=new CreatePerson('infoo', '123');

alert(obj.showName==obj2.showName);//相等
var json={
    name: 'infoo',
    qq: '123',
    
    showName: function ()
    {
        alert('我的名字叫:'+this.name);
    },
    showQQ: function ()
    {
        alert('我的QQ号是:'+this.qq);
    }
};

json.showName();
json.showQQ();
原文地址:https://www.cnblogs.com/infoo/p/8289937.html