基于已有對象擴(kuò)充其屬性和方法
工廠方式
構(gòu)造函數(shù)方式
原型(“prototype”)方式
動(dòng)態(tài)原型方式
一,基于已有對象擴(kuò)充其屬性和方法
<script type="text/javascript">
var object = new Object();
object.name = "zhangsan";
object.sayName = function(name)
{
this.name = name;
alert(this.name);
}
object.sayName("lisi");
</script>
二,工廠方式
function createObject()
{
var object = new Object();
object.username = "zhangsan";
object.password = "123";
object.get = function()
{
alert(this.username + ", " + this.password);
}
return object;
}
var object1 = createObject();
var object2 = createObject();
object1.get();
-
改進(jìn):采用帶參數(shù)的構(gòu)造方法:
function createObject(username, password)
{
var object = new Object();
object.username = username;
object.password = password;
object.get = function()
{
alert(this.username + ", " + this.password);
}
return object;
}
var object1 = createObject("zhangsan", "123");
object1.get();
三,構(gòu)造函數(shù)方式
function Person()
{
//在執(zhí)行第一行代碼前兵拢,js引擎會(huì)為我們生成一個(gè)對象
this.username = "zhangsan";
this.password = "123";
this.getInfo = function()
{
alert(this.username + ", " + this.password);
}
//此處有一個(gè)隱藏的return語句翻斟,用于將之前生成的對象返回
//只有在后面用new的情況下,才會(huì)出現(xiàn)注釋所述的這兩點(diǎn)情況
}
//生成對象
var person = new Person();//用了new
person.getInfo();
-
改進(jìn)说铃,帶有參數(shù)
function Person(username, password)
{
this.username = username;
this.password = password;
this.getInfo = function()
{
alert(this.username + ", " + this.password);
}
}
var person = new Person("zhangsan", "123");
person.getInfo();