本节的主要内容是讲解new Object方式创建对象以及以这种方式来封装几个有趣的类。我们先来回顾一下new Object是怎么创建对象的,再说一下啊new Object方式创建对象如何演变。
new Object创建对象的演变方式
在本系列博客的第二节的时候就讲到了如何使用new Object方式和字面量方式来创建对象,前一篇博客中用字面量方式来封装了几个也民效果的类,这这一节我们先来看看new Object这种方式创建的对象方式是如何演变的。new Object是这样定义对象的:
var obj1 = new Object();
obj1.name = "Spring Chang";
obj1.QQ = "290794272";
obj1.showInfo = function () {
alert("name = " + this.name + ",QQ = " + this.QQ);
}
obj1.showInfo();
上面代码直接了断的创建了obj1对象,并对它的属性name,QQ赋值,然后在showInfo方法中输出这两个属性的值。如果要创建第二个对象,则这样创建:
var obj2 = new Object();
obj2.name = "Lily Wang";
obj2.QQ = "1008611";
obj2.showInfo = function () {
alert("name = " + this.name + ",QQ = " + this.QQ);
}
obj2.showInfo();
这是最原始的对象创建方式,如果你的JS代码中用到一两个这样的对象不足为惧,但是如果你的代码中要用到多个对象,你会发现这样创建会比较麻烦,于是乎我们来改进一下对象的创建方式。将创建对象的过程交给一函数来执行,我们只获取该函数创建出来的对象即可,于是我们利用函数的方式来创建对象,代码如下:
function createObject(uName, qq) {
var obj = new Object();
obj.username = uName;
obj.QQ = qq;
obj.showInfo = function () {
alert(this.username + "," + this.QQ);
}
return obj;
}
var obj1 = createObject("Spring Chang", "290794272");
obj1.showInfo();
var obj2 = createObject("Lily Wang", "1008611");
obj2.showInfo();
上诉代码虽然简化了对象的创建过程,但总觉得思路还是使用面向过程来完成的,我们再来改进一下,使用构造函数方法来创建对象。
function CreateObj( uName, uQQ ) {
this.userName = uName;
thi