javascript工廠方式定義對(duì)象
每一個(gè)函數(shù)對(duì)象都有一個(gè)length屬性,表示該函數(shù)期望接收的參數(shù)個(gè)數(shù)。
<html>
<head>
<script type="text/javascript">
var add =function(num1,num2,num3){
alert(num1+num2+num3);
}
alert(add.length);
</script>
</head>
<body>
</body>
</html>
關(guān)于js面向?qū)ο蟮膭?chuàng)建方式,
目標(biāo):
構(gòu)建一個(gè)order對(duì)象.
包含三個(gè)屬性:日期,金額,提交人
包含一個(gè)方法:顯示字符串:”XX在XXXX-XX-XX 提交了額度為:XXXX元的訂單"
一 工廠方式
<script type=text/javascript>
/*
工廠方式:通過(guò)使用方法返回對(duì)象,使用時(shí)不需要通過(guò)new生成新對(duì)象.
*/
function createOrder()//也可以構(gòu)建帶參數(shù)的工廠方法,根據(jù)傳入的參數(shù)初始化對(duì)象數(shù)據(jù).
{
var order = new Object();
order.Date = "1990-1-1";
order.Price = "3200";
order.Name = "Vince Keny";
order.Show = function()//將show方法放在工廠中,則分別為每個(gè)實(shí)例創(chuàng)造一個(gè)Show方法.浪費(fèi)資源是此模式的弊端.
{
alert(this.Name + " 在 " + this.Date + " 提交了額度為 " + this.Price + " 元的訂單.")
}
return order;
}
//使用工廠模式返回對(duì)象:
var order = createOrder();
//也可以這樣使用,把工廠模式改造成"偽構(gòu)造函數(shù)",因?yàn)樵诠S中使用了new,所以創(chuàng)建對(duì)象時(shí)的new運(yùn)算符將被忽律.
var order2 = new createOrder();
order.Show();
order2.Show();
</script>
二 構(gòu)造函數(shù)方式
/*
構(gòu)造函數(shù)方式,方法的聲明與工廠方式一樣,也存在同同樣的問題,同樣可以提取出來(lái).不同點(diǎn)是聲明屬性用this
并且需要使用new運(yùn)算符生成實(shí)例.
*/
function Order()
{
this.Date = "1990-1-1";
this.Price = "3200";
this.Name = "Vince Keny";
this.Show = function()
{
alert(this.Name + " 在 " + this.Date + " 提交了額度為 " + this.Price + " 元的訂單.")
}
}
var order = new Order();
order.Show();
三 原型方式
/*
原型方式:使用prototype
*/
function Order()
{}
Order.prototype.Date = "1990-1-1";
Order.prototype.Price = "3200";
Order.prototype.Name = "Vince Keny";
Order.prototype.Show = function()
{
alert(this.Name + " 在 " + this.Date + " 提交了額度為 " + this.Price + " 元的訂單.")
}
var order = new Order();
order.Show();
四 混合 構(gòu)造函數(shù)/原型 方式
/*
混合構(gòu)造函數(shù)/原型 方式 : 使用構(gòu)造函數(shù)方式初始化屬性字段,使用原型方式構(gòu)造方法.
*/
function Order()
{
this.Date = "1990-1-1";
this.Price = "3200";
this.Name = "Vince Keny";
}
Order.prototype.Show = function().
{
alert(this.Name + " 在 " + this.Date + " 提交了額度為 " + this.Price + " 元的訂單.")
}
var order = new Order();
order.Show();
五 動(dòng)態(tài)混合方式
/*
動(dòng)態(tài)混合方式 : 和混合方式不同點(diǎn)在于聲明方法的位置.將方法生命放到了構(gòu)造函數(shù)內(nèi)部,更符合面向?qū)ο?
*/
function Order()
{
this.Date = "1990-1-1";
this.Price = "3200";
this.Name = "Vince Keny";
if(typeof Order._initialized == "undefined")
{
Order.prototype.Show = function().
{
alert(this.Name + " 在 " + this.Date + " 提交了額度為 " + this.Price + " 元的訂單.")
};
Order._initialized = true;
}
}
function Car(sColor,iDoors){
var oTempCar = new Object;
oTempCar.color = sColor;
oTempCar.doors = iDooes;
oTempCar.showColor = function (){
alert(this.color)
};
return oTempCar;
}
var oCar1 = new Car("red",4);
var oCar2 = new Car("blue",3);
oCar1.showColor(); //outputs "red"
oCar2.showColor(); //outputs "blue"
- Javascript使用function創(chuàng)建類的兩種方法(推薦)
- Javascript 創(chuàng)建類并動(dòng)態(tài)添加屬性及方法的簡(jiǎn)單實(shí)現(xiàn)
- JS創(chuàng)建類和對(duì)象的兩種不同方式
- JavaScript中創(chuàng)建類/對(duì)象的幾種方法總結(jié)
- JavaScript創(chuàng)建類/對(duì)象的幾種方式概述及實(shí)例
- javascript最常用與實(shí)用的創(chuàng)建類的代碼
- 利用MS AJAX注冊(cè)Javascript命名空間并創(chuàng)建類
- 討論javascript(一)工廠方式 js面象對(duì)象的定義方法
- JavaScript中使用構(gòu)造器創(chuàng)建對(duì)象無(wú)需new的情況說(shuō)明
- JavaScript設(shè)計(jì)模式之工廠模式和構(gòu)造器模式
- javascript 混合的構(gòu)造函數(shù)和原型方式,動(dòng)態(tài)原型方式
- JS常見創(chuàng)建類的方法小結(jié)【工廠方式,構(gòu)造器方式,原型方式,聯(lián)合方式等】
相關(guān)文章
初學(xué)JS的的小例子 javascript replace高亮替換
初學(xué)JS的的小例子 javascript replace高亮替換...2007-12-12javaScript中兩個(gè)等于號(hào)和三個(gè)等于號(hào)之間的區(qū)別介紹
這篇文章主要介紹了javaScript中兩個(gè)等于號(hào)和三個(gè)等于號(hào)之間的區(qū)別,還不知道的朋友可以學(xué)習(xí)下2014-06-06讓ie運(yùn)行js時(shí)提示允許阻止內(nèi)容運(yùn)行的解決方法
這個(gè)問題一般是因?yàn)榫W(wǎng)頁(yè)中使用了一些js代碼,而ie的默認(rèn)安全級(jí)別過(guò)高導(dǎo)致運(yùn)行js時(shí)需要經(jīng)過(guò)準(zhǔn)許才可以。下面是IE的設(shè)置方法。2010-10-10Adapter適配器模式在JavaScript設(shè)計(jì)模式編程中的運(yùn)用分析
適配器模式的作用是解決兩個(gè)軟件實(shí)體間的接口不兼容的問題,在JavaScript尤其是AJAX方面比較常用,接下來(lái)看一下對(duì)Adapter適配器模式在JavaScript設(shè)計(jì)模式編程中的運(yùn)用分析2016-05-05JavaScript正則表達(dá)式之multiline屬性的應(yīng)用
這篇文章主要介紹了JavaScript正則表達(dá)式之multiline屬性的應(yīng)用,是JS學(xué)習(xí)進(jìn)階中的重要知識(shí),需要的朋友可以參考下2015-06-06