日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

javascript学习笔记_function

發(fā)布時間:2025/3/15 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javascript学习笔记_function 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、js的函數(shù)定義有3種形式

a)?函數(shù)定義表達

var?f?=?function(x,y){return?x+y;};

函數(shù)定義表達式,使用一個變量來存函數(shù),在調(diào)用函數(shù)表達式時,必須已經(jīng)定義好了函數(shù)。因為在js中變量的聲明被提前但是變量的賦值不會提前??梢灾付ê瘮?shù)名也可以不指定。

b)?函數(shù)聲明語句

function?f(x,y){return?x+y};

此種方式函數(shù)聲明語句“被提前”到外部腳本或者外部函數(shù)作用域(該函數(shù)嵌套到外部函數(shù)時)的頂部,這種方式?可以在定義函數(shù)之前調(diào)用。

c)?使用Function構造函數(shù)

var?f?=?new?Function(“x”,”y”,”return?x+y;”);

此種方式,Function構造函數(shù)最后一個參數(shù)是函數(shù)主體,前面的參數(shù)是函數(shù)的形參,允許javascript在運行時動態(tài)的創(chuàng)建并編譯函數(shù)。而且它創(chuàng)建的函數(shù)不使用詞法作用域,相反函數(shù)體的代碼編譯總在全局作用域執(zhí)行,不建議采用此次方式。

d)?嵌套函數(shù)

在函數(shù)中定義另一個函數(shù),(里層函數(shù))嵌套函數(shù)可以訪問嵌套它們的函數(shù)(外層函數(shù))的參數(shù)和變量。

2、函數(shù)的調(diào)用

a)?做為函數(shù),普通的函數(shù)進行調(diào)用。

b)?作為方法,函數(shù)作為對象的屬性值。

c)?作為構造函數(shù)。

d)?通過call()apply()方法間接調(diào)用,有點感覺像java的反射。

3、函數(shù)的實參和形參

a)?當調(diào)用函數(shù)時傳入的實參比函數(shù)聲明的形參少,剩下的形參都將設置為undefined,如果比聲明的形參多的話,會忽略。在函數(shù)體內(nèi),標識符arguments指向?qū)崊ο蟮囊?#xff0c;實參對象是一個類數(shù)組對象,就算實參個數(shù)多于行參個數(shù)一樣的可以訪問到。

b)?除了數(shù)組元素,實參對象還定義了calleecaller屬性,callee指代當前正在執(zhí)行的函數(shù),caller指代當前正在執(zhí)行的函數(shù)的函數(shù)。

4、閉包

函數(shù)對象可以通過作用域鏈相互關聯(lián)起來,函數(shù)體內(nèi)部的變量可以保存在函數(shù)作用域內(nèi),這種特性被稱為閉包。

我們將作用域鏈描述為一個對象列表,每次調(diào)用js函數(shù),都會創(chuàng)建一個新的對象用來保存局部變量,把這個對象添加到作用域鏈中,當函數(shù)返回時,就從作用域鏈中將這個綁定變量的對象刪除。但是如果這個函數(shù)定義了嵌套的函數(shù),并將它作為返回值或者存儲在某處的屬性里,這時就會有一個外部的引用指向這個嵌套的函數(shù),那這個外部函數(shù)的作用域綁定的變量對象就不會被當做垃圾回收,嵌套函數(shù)所指向的變量綁定對象也不會被當做垃圾回收。

總之,只要函數(shù)作為返回值或者保存在某處的屬性中,那么外部函數(shù)的指向的變量綁定對象都不會被清空。

5、函數(shù)屬性、方法、構造函數(shù)

a)?length屬性是函數(shù)定義時的形參個數(shù),arguments.length(實際傳入的實參個),arguments.callee.length(函數(shù)定義指定的形參個數(shù))

b)?prototype屬性指向函數(shù)的原型對象,當函數(shù)用作構造函數(shù)時,新創(chuàng)建的對象會從原型對象上繼承屬性

c)?call()方法和apply()方法

第一個參數(shù)都是,調(diào)用的上下文,call后面的參數(shù)對于函數(shù)的形參,apply,第二參數(shù)是數(shù)組存放參數(shù)。

d)?bind()方法

將函數(shù)f()綁定到某對象of.bind(o),該方法返回一個新的函數(shù),新函數(shù)的調(diào)用會把f原始函數(shù)當做對象o的方法來調(diào)用。傳給新函數(shù)的任何實參都會傳給原始函數(shù)。綁定的同時還可以傳函數(shù)的實參,綁定的實參和新函數(shù)的調(diào)用傳的實參和按從左到右傳入。

總結(jié)

以上是生活随笔為你收集整理的javascript学习笔记_function的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。