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