国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > JS > 正文

JavaScript 函數(shù)的定義-調(diào)用、注意事項(xiàng)

2024-05-06 16:36:35
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

函數(shù)定義

函數(shù)語(yǔ)句定義

function(a,b){ return a+b; }

表達(dá)式定義

var add = function(a,b){return a+b};

//函數(shù)表達(dá)式可以包含名稱(chēng),這在遞歸時(shí)很有用 var f = function fact(x){ if(x<=1) {return 1; }else { return x*faxt(x-1); } }

以表達(dá)式方式定義的函數(shù),函數(shù)的名稱(chēng)是可選的。如果函數(shù)定義表達(dá)式包含名稱(chēng),函數(shù)的局部作用域?qū)?huì)包含一個(gè)綁定到函數(shù)對(duì)象的名稱(chēng),實(shí)際上,函數(shù)的名稱(chēng)將成為函數(shù)內(nèi)部的一個(gè)局部變量

函數(shù)命名規(guī)范

1.like_this()第一個(gè)字符為小寫(xiě),當(dāng)包含多個(gè)單詞時(shí)候,單詞以下劃線(xiàn)分割

2.likeThis()第一個(gè)字符為小寫(xiě),當(dāng)包含多個(gè)單詞時(shí)候,除第一個(gè)單詞以外的單詞首字母使用大學(xué)字母

3.內(nèi)部函數(shù)或私有函數(shù),通常以一條下劃線(xiàn)為前綴

注:函數(shù)聲明語(yǔ)句‘被提前到外部腳本或外部函數(shù)作用于頂部,所以可以被在它定義之前出現(xiàn)的代碼所調(diào)用

以表達(dá)式方式定義函數(shù)前必須把它賦值給一個(gè)變量。所以表達(dá)式方式定義的函數(shù)在定義之前是無(wú)法調(diào)用的

函數(shù)返回值

  • return語(yǔ)句返回函數(shù)的值給調(diào)用者。
  • return語(yǔ)句沒(méi)有,則它返回undefined

 嵌套函數(shù)

  • 嵌套函數(shù)可以訪(fǎng)問(wèn)他們的函數(shù)的參數(shù)和變量
  • 但是嵌套函數(shù)不能出現(xiàn)在循環(huán)、條件判斷,或者try/cache/finally/with語(yǔ)句中

函數(shù)調(diào)用

  • 作為函數(shù)
  • 作為方法
  • 作為構(gòu)造函數(shù)
  • 通過(guò)他們的call()和apply()方法間接調(diào)用

作為函數(shù)調(diào)用

add(1,2)

 根據(jù)ECMAScript3和非嚴(yán)格的ECMAScript5對(duì)函數(shù)調(diào)用的規(guī)定,調(diào)用上下文(this的值)是全局對(duì)象。然而在嚴(yán)格模式下,調(diào)用上下文則是undefined。

//定義一個(gè)函數(shù)且調(diào)用一個(gè)函數(shù)來(lái)確定當(dāng)前腳本運(yùn)行是否為嚴(yán)格模式
 var strict = (function(){return this;}());

作為方法調(diào)用

var o = { m:1, n:2, add:function(){  this.result = this.m+this.n;  }}

方法調(diào)用和函數(shù)調(diào)用的一個(gè)重大區(qū)別。----調(diào)用上下文

o.add() add的調(diào)用上下文為o,即:this
o.add() 等同于o['add']()
方法鏈:當(dāng)方法并不需要返回值時(shí)候,最好直接返回this
this為一個(gè)關(guān)鍵字,不是變量,也不是屬性名。JavaScript語(yǔ)法不允許給this賦值
和變量不同,關(guān)鍵字this沒(méi)有作用于的限制,嵌套的函數(shù)不會(huì)從調(diào)用它的函數(shù)中繼承this,如果想訪(fǎng)問(wèn)外部函數(shù)的this,var self= this;保存在變量中
如果嵌套函數(shù)作為函數(shù)調(diào)用,其this的值指向調(diào)用它的對(duì)象。如果作為函數(shù)調(diào)用,this不是全局對(duì)象(非嚴(yán)格模式),就是undefined(嚴(yán)格模式)

構(gòu)造函數(shù)調(diào)用

var o = new Object();

構(gòu)造函數(shù)調(diào)用和普通函數(shù)調(diào)用以及方法調(diào)用在實(shí)參處理。調(diào)用上下文和返回值等方面都有不同。

凡是沒(méi)有形參的構(gòu)造函數(shù)調(diào)用都可以省略圓括號(hào)。

var o = new Object();var o = new Object;//等價(jià)

構(gòu)造函數(shù)調(diào)用創(chuàng)建一個(gè)新的空對(duì)象,這個(gè)對(duì)象繼承自構(gòu)造函數(shù)的prototype屬性,這個(gè)函數(shù)試圖初始化這個(gè)新創(chuàng)建的對(duì)象,病將這個(gè)對(duì)象做為上下文,因此構(gòu)造函數(shù)可以使用this關(guān)鍵字來(lái)引用這個(gè)新創(chuàng)建的對(duì)象。

new o.m() 調(diào)用的上下文并不是o.
構(gòu)造函數(shù)并不使用return。如果構(gòu)造函數(shù)顯示的使用return語(yǔ)句返回一個(gè)對(duì)象,那么調(diào)用表達(dá)式的值就是這個(gè)對(duì)象。如果構(gòu)造函數(shù)但并沒(méi)有返回值,或者返回一個(gè)原始值,那么就會(huì)忽略返回值,同時(shí)使用新對(duì)象作為返回結(jié)果。

間接調(diào)用

call()
appy()

 

注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JavaScript/Ajax教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 阳春市| 兴山县| 临澧县| 新田县| 商都县| 绥芬河市| 固始县| 甘肃省| 青冈县| 民勤县| 连云港市| 射洪县| 神农架林区| 芒康县| 叶城县| 万盛区| 宕昌县| 从化市| 道真| 璧山县| 垣曲县| 共和县| 海丰县| 成安县| 亳州市| 自贡市| 班戈县| 赫章县| 宁夏| 泸定县| 洛浦县| 遵化市| 图木舒克市| 贡山| 六安市| 延安市| 深州市| 枝江市| 禄丰县| 元朗区| 浦北县|