成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

定義javascript,定義JavaScript函數(shù)

javascript怎么定義函數(shù)

1:調(diào)用關(guān)鍵字function來構(gòu)造

創(chuàng)新互聯(lián)建站專業(yè)IDC數(shù)據(jù)服務(wù)器托管提供商,專業(yè)提供成都服務(wù)器托管,服務(wù)器租用,綿陽服務(wù)器托管綿陽服務(wù)器托管,成都多線服務(wù)器托管等服務(wù)器托管服務(wù)。

function?distance(x1,x2,y1,y2)

 {

 var?dx=x2-x1;

 var?dy=y2-y1;

 return?Math.sqrt(dx*dx+dy*dy);

 }

2:使用Function()構(gòu)造函數(shù)(請(qǐng)注意與上面的大小寫)

1

var?f=new?Function*"x","y","return?x*y");

這行代碼創(chuàng)建了一個(gè)新函數(shù),該函數(shù)和你所熟悉的語法定義的函數(shù)基本上時(shí)等價(jià)的:

1

2

3

4

function?f(x,y)

{

return?x*y;

}

Functino()構(gòu)造函數(shù)可以接受任意多個(gè)字符串參數(shù)。它的最后一個(gè)參數(shù)時(shí)函數(shù)的主體,其中可以包含任何JavaScript語句,語句之間用分號(hào)分隔。其他的參數(shù)都是用來說明函數(shù)要定義的形式參數(shù)名的字符串。如果你定義的函數(shù)沒有參數(shù),那么可以只需給構(gòu)造函數(shù)傳遞一個(gè)字符串(即函數(shù)的主體)即可。?

注意,傳遞給構(gòu)造函數(shù)Function()的參數(shù)中沒有一個(gè)用于說明它要?jiǎng)?chuàng)建的函數(shù)名。用Function()構(gòu)造函數(shù)創(chuàng)建的未命名函數(shù)有時(shí)被成為“匿名函數(shù)”。?

你可能非常想知道Function()構(gòu)造函數(shù)的用途是什么。為什么不能只用function語句來定義所有的函數(shù)呢?原因是Function()構(gòu)造函數(shù)允許我們動(dòng)態(tài)地建立和編譯一個(gè)函數(shù),它不會(huì)將我們限制在function語句預(yù)編譯的函數(shù)體中。這樣做帶來的負(fù)面影響效應(yīng)就是每次調(diào)用一個(gè)函數(shù)時(shí),F(xiàn)unction()構(gòu)造函數(shù)都要對(duì)它進(jìn)行編譯。因此,在循環(huán)體中或者在經(jīng)常使用的函數(shù)中,我們不應(yīng)該頻繁地調(diào)用這個(gè)構(gòu)造函數(shù)。?

使用Function()構(gòu)造函數(shù)的另一個(gè)原因是它能夠?qū)⒑瘮?shù)定義為JavaScript表達(dá)式的一部分,而不是將其定義一個(gè)語句,這種情況下使用它就顯得比較的方面,甚至可以說精致。

 3:函數(shù)直接量?

函數(shù)直接量是一個(gè)表達(dá)式,它可以定義匿名函數(shù)。函數(shù)直接量的語法和function語句非常相似,只不過它被用作表達(dá)式,而不是用作語句,而且也無需指定函數(shù)名。下面的三行代碼分別使用function()語句、Funciont()構(gòu)造函數(shù)和函數(shù)直接量定義了三個(gè)基本上相同的函數(shù):

1

2

3

function?f(x){return?x*x};

 var?f=new?Function("x","return?x*x;");

 var?f=function(x){reurn?x*x};

在JavaScript1.1中,可以使用構(gòu)造函數(shù)Function()來定義函數(shù),在JavaScript1.2和其后的版本中,還可以使用函數(shù)直接量來構(gòu)造函數(shù)。你應(yīng)該注意這兩種方法之間的重要差別。?

首先,構(gòu)造函數(shù)Function()允許在運(yùn)行時(shí)動(dòng)態(tài)地創(chuàng)建和編譯JavaScript代碼。但是函數(shù)直接量卻是函數(shù)結(jié)構(gòu)的一個(gè)靜態(tài)部分,就像function語句一樣。?

其次,作為第一個(gè)差別的必然結(jié)果,每次調(diào)用構(gòu)造函數(shù)Function()時(shí)都會(huì)解析函數(shù)體并且創(chuàng)建一個(gè)新東漢數(shù)對(duì)象。如果對(duì)構(gòu)造函數(shù)的調(diào)用出現(xiàn)在一個(gè)循環(huán)中,或者出現(xiàn)在一個(gè)經(jīng)常被調(diào)用的函數(shù)中,這種方法的效率非常低。另一個(gè)方面,函數(shù)直接量或出現(xiàn)在循環(huán)和函數(shù)中的嵌套函數(shù)不是在每次調(diào)用時(shí)都被重新編譯,而且每當(dāng)遇到一個(gè)函數(shù)直接量時(shí)也不創(chuàng)建一個(gè)新的函數(shù)對(duì)象。?

Function()構(gòu)造函數(shù)和函數(shù)之間量之間的第三點(diǎn)差別是,使用構(gòu)造函數(shù)Function()創(chuàng)建的函數(shù)不使用詞法作用域,相反的,它們總是被當(dāng)作頂級(jí)函數(shù)來編譯,就像下面代碼所說明的那樣:

javascript什么意思?

JavaScript簡(jiǎn)介:

Javacript是一種能讓你的網(wǎng)頁更加生動(dòng)活潑的程式語言,也是目前網(wǎng)頁中設(shè)計(jì)中最容易學(xué)又最方便的語言。你可以利用Javacript輕易的做出親切的歡迎訊息、漂亮的數(shù)字鐘、有廣告效果的跑馬燈及簡(jiǎn)易的選舉,還可以顯示瀏覽器停留的時(shí)間。讓這些特殊效果提高網(wǎng)頁的互動(dòng)性、提供親切的服務(wù)。

由來

談到JavaScript的歷史,首先就得介紹[網(wǎng)景](Netscape)這家公司,相信很多人使用過Netscape瀏覽器來瀏覽網(wǎng)頁,這家公司在設(shè)計(jì)瀏覽器的時(shí)候,一方面為了輔助本身發(fā)展的一種名為L(zhǎng)iveWire的程式,另一方面為了提高網(wǎng)頁設(shè)計(jì)的互動(dòng)性,所以發(fā)展了LiveScript這個(gè)電腦語言。

那JavaScript和LiveScript有什么關(guān)系呢?在Netscape發(fā)展LiveScript的同時(shí),另一家名為[升陽](Sun)的公司也正在發(fā)展Java語言,為了輔助Java的網(wǎng)頁程式方面的設(shè)計(jì),所以這兩家公司進(jìn)行合作,共同發(fā)展LiveScript語言,并且將LiveScript語言改名為Javacript,這就是Javacript的由來。

JavaScript剛開始時(shí)僅應(yīng)用在Netscape瀏覽器,不過隨著使用JavaScript制作網(wǎng)頁的人愈來愈多,微軟的IE瀏覽器也提供了新功能,現(xiàn)在可以在IE瀏覽器上看到JavaScript的效果了。

JavaScript和Java的差別

JavaScript和Java的差別究竟在哪兒呢?雖然名稱很相似,而且都是在Internet和WWW盛行之下,所發(fā)展出為的兩種提供網(wǎng)頁程式設(shè)計(jì)的語言,但是卻有很大的差異。前面介紹過JavaScript的前身是網(wǎng)景(Netscape)公司發(fā)展的Live Script語言,直到和升陽(Sun)公司合作之后,才改名為JavaScript,而Java也是由升陽公司發(fā)展出來的,所以名字才會(huì)這么相似。盡管如此,JavaScript和Java仍然是不同的語言。我們整理出以下四點(diǎn)幫助你了解兩者的差異:

1、JavaScript是一種象文件一樣的描述語言,透過瀏覽器就可以直接執(zhí)行;而Java像正統(tǒng)的程式語言(如C/C++)一樣,必須先進(jìn)行編繹和連結(jié)等動(dòng)作才可執(zhí)行。

2、JavaScript必須編寫在HTML文件中,直接查看網(wǎng)頁的原始碼,就可以看到JavaScript程式,所以沒有保護(hù),任何人都可以透過HTML文件復(fù)制程式;而Java應(yīng)用在網(wǎng)頁的程式稱為Java Applet(Applet是[小程式]的意思),是和HTML文件分開的。

3、JavaScript的結(jié)構(gòu)較為自由松散,譬如,程式中使用的變數(shù)前并不是需要明確的定義,而Java和正統(tǒng)的程式語言一樣,結(jié)構(gòu)較為嚴(yán)謹(jǐn)。

4、JavaScript不具有讀寫檔案及網(wǎng)絡(luò)控制等功能,Java則有提供這些功能,但是JavaScript在網(wǎng)頁內(nèi)容的控制和互動(dòng)性方面,可算是最方便快捷的。

JavaScript的功能

顯示信息提示

許多網(wǎng)站在你一連上時(shí),畫面上會(huì)先出現(xiàn)一個(gè)歡迎訊息對(duì)話盒,不但和你打招呼,還會(huì)發(fā)布一些重要訊息

顯示日期時(shí)間

某些網(wǎng)頁會(huì)顯示目前的日期和時(shí)間,可能你會(huì)覺得有點(diǎn)神奇,怎么瀏覽器會(huì)知道目前的時(shí)間呢?這也是JavaScript提供的功能,它可以偵測(cè)你的電腦目前的時(shí)間,并且顯示在網(wǎng)頁中。

顯示更新日期

許多網(wǎng)頁會(huì)公告最新更新日期讓大家知道,Java Scirpt可以自動(dòng)偵測(cè)網(wǎng)頁修改的日期,讓你省去在每次修改網(wǎng)頁時(shí)就得修改日期的動(dòng)作。

跑馬燈文字

讓你可以方便顯示較長(zhǎng)的訊息,又不占去大塊的版面空間。

按鈕變化效果

當(dāng)你移動(dòng)滑鼠游到左邊的按鈕上時(shí),按鈕便會(huì)變成色,在瀏覽器下方狀態(tài)列上也會(huì)顯示出相關(guān)文字,這也是利用JavaScript制作的動(dòng)態(tài)效果。

文章出處:

JavaScript定義對(duì)象的方法有哪些?

Javascript對(duì)象定義的幾種方式

一.工廠方式:先創(chuàng)建對(duì)象,再向?qū)ο筇砑臃椒ê蛯傩?,封閉后調(diào)用不要使用new操作符創(chuàng)建對(duì)象。使用這種方法有很多弊端,把方法定義在工廠函數(shù)內(nèi)部的時(shí)候,每次調(diào)用的時(shí)候都會(huì)產(chǎn)生新的函數(shù)

function factory(name,person,address,time){

var tmp=new Object;

tmp.name=name;

tmp.person=person;

tmp.address=address;

tmp.workTime=function(){

alert("we start to work at" + time);

}

return tmp;

}

var factory1=factory("drugs",100,"huashan Rd",10);

var factory2=factory("TCMdrugs",100,"hongqiao Rd",11);

factory1.workTime();

factory2.workTime();//Here,factory1 and factory2 have different method

對(duì)這種問題雖然可以用下面的方式改進(jìn),但是缺乏很好的封裝性

function factory(name,person,address,time){

var tmp=new Object;

tmp.name=name;

tmp.person=person;

tmp.address=address;

tmp.workTime=workTime();

return tmp;

}

function workTime(){

alert("we start to work at" + this.time);

}

二,構(gòu)造函數(shù)方式,在構(gòu)造函數(shù)內(nèi)部不創(chuàng)建對(duì)象,使用this關(guān)鍵字,使用時(shí)候用new操作符,存在和工廠方式相同的問題,重復(fù)創(chuàng)建函數(shù)。

function counstruct(name,person,address,time){

this.name=name;

this.person=person;

this.address=address;

this.workTime=function(){

alert("we start to work at" + this.time);

};

}

三.原型方式:利用prototype屬性來實(shí)現(xiàn)屬性和方法,可以通過instanceof 檢查對(duì)象類型,解決了重復(fù)創(chuàng)建函數(shù)的問題,但不能通過傳遞參數(shù)初始化屬性

function Car(){

}

Car.prototype.color = "red";

Car.prototype.doors = 4;

Car.prototype.mpg = 23;

Car.prototype.showColor = function(){

alert(this.color);

};

var car1 = new Car();

var car2 = new Car();

但是如果遇到下面的情況,又出問題了

Car.prototype.drivers = new Array("mike", "sue");

car1.drivers.push("matt");

alert(car1.drivers); //outputs "mike,sue,matt"

alert(car2.drivers); //outputs "mike,sue,matt"

drivers是指向Array對(duì)象的指針,Car的兩個(gè)實(shí)例都指向同一個(gè)數(shù)組。

四.混合的構(gòu)造函數(shù)/原型方式:針對(duì)原型方式的解決方案

function Car(sColor, iDoors, iMpg){

this.color = sColor;

this.doors = iDoors;

this.mpg = iMpg;

this.drivers = new Array("mike", "sue");

}

Car.prototype.showColor = function (){

alert(this.color);

};

var car1 = new Car("red", 4, 23);

var car2 = new Car("blue", 3, 25);

car1.drivers.push("matt");

alert(car1.drivers);

alert(car2.drivers);

五.動(dòng)態(tài)原型方式:這種方式是極力推薦的方式,避免了前面幾種方式所出現(xiàn)的問題,提供了更友好的編碼風(fēng)格

function Car(sColor, iDoors, iMpg){

this.color = sColor;

this.doors = iDoors;

this.mpg = iMpg;

this.drivers = new Array("mike", "sue");

if(typeof Car.initialized == "undefined"){

Car.prototype.showColor = function (){

alert(this.color);

};

Car.initialized = true;

}

}

var car1 = new Car("red", 4, 23);

var car2 = new Car("blue", 3, 25);

car1.drivers.push("matt");

alert(car1.drivers);

alert(car2.drivers);

六.混合工廠方式:和工廠方式有些相似,但采用new關(guān)鍵字實(shí)例化,具有和工廠方式相同的弊端,不推薦使用

新聞標(biāo)題:定義javascript,定義JavaScript函數(shù)
文章網(wǎng)址:http://jinyejixie.com/article28/dsecgjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站做網(wǎng)站、網(wǎng)頁設(shè)計(jì)公司、外貿(mào)建站移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
正宁县| 册亨县| 平安县| 漳平市| 奎屯市| 全椒县| 泉州市| 集贤县| 云阳县| 大英县| 泌阳县| 星子县| 徐水县| 安康市| 横峰县| 大洼县| 棋牌| 嘉黎县| 安福县| 天长市| 石景山区| 晋中市| 电白县| 衡水市| 宜阳县| 搜索| 惠安县| 封开县| 聂荣县| 法库县| 新丰县| 合山市| 沿河| 西乡县| 凤城市| 淳安县| 新宁县| 得荣县| 璧山县| 开江县| 无棣县|