欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ECMAScript中函數(shù)function類型

 更新時間:2015年06月03日 10:43:59   投稿:hebedich  
這篇文章主要介紹了ECMAScript中函數(shù)function類型的相關(guān)資料,需要的朋友可以參考下

說起來ECMAScript中上面最有意思,我想那莫過于函數(shù)了,有意思的根源,則在于函數(shù)實際上是對象。每個函數(shù)都是Function類型的實例,而且都與其他引用類型一樣具有屬性和方法。由于函數(shù)是對象,因此函數(shù)名實際上也是一個指向函數(shù)對象的指針,不會與某個函數(shù)綁定。函數(shù)通常是使用函數(shù)聲明語法定義的,如下例子:

復(fù)制代碼 代碼如下:

 function sum(num1,num2)
 {
    return num1+num2;
 }

這與下面使用函數(shù)表達(dá)式定義函數(shù)的方式幾乎相差無幾。

復(fù)制代碼 代碼如下:

 var sum=function(num1,num2)
 {
     return num1+num2;
 };

  以上代碼定了變量sum并將其初始化為一個函數(shù)。你們會注意到,function關(guān)鍵字后面沒有函數(shù)名。這是因為在使用函數(shù)表達(dá)式定義函數(shù)時,沒有必要使用函數(shù)名(通過變量sum既可以引用函數(shù))。另外,還要注意函數(shù)末尾有一個分號,就像聲明其他變量時一樣。

  最后一種定義函數(shù)的方式是使用Function構(gòu)造函數(shù)。Function構(gòu)造函數(shù)可以接受任意數(shù)量的參數(shù),但最后一個參數(shù)始終都會被看成函數(shù)體,而前面的參數(shù)則枚舉出了新函數(shù)的參數(shù)。如下例子:

復(fù)制代碼 代碼如下:

var sum=new Function("num1","num2","return num1+num2");//不推薦

  從技術(shù)角度講,這是一個函數(shù)表達(dá)式。但是,我們不推薦使用這種方法定義函數(shù), 因為這種語法會導(dǎo)致解析兩次代碼(第一次解析常規(guī)的ECMAScript代碼,第二次是解析傳入構(gòu)造函數(shù)中的字符串),從而影響性能。不過,這種語法對于理解“函數(shù)是對象,函數(shù)名是指針”的概念都是非常直觀的。

由于函數(shù)名僅僅是指向函數(shù)的指針,因此函數(shù)名與包含對象指針的其他變量沒有什么不同。換句話說,一個函數(shù)可能會有多個名字,如下例子:

復(fù)制代碼 代碼如下:

function sum(num1,num2)
{
    return num1+num2;
}
alert(sum(10,10));//20
var anotherSum=sum;
alert(anotherSum(10,10));//20
sum=null;
alert(anotherSum(10,10));//20

  以上代碼首先定義了一個名為sum()的函數(shù),用于求兩個值的和。然后,有聲明了變量anotherSum,并將其設(shè)置為sum()相等(將sum的值賦給anotherSum)。注意,使用不帶圓括號的函數(shù)名是訪問函數(shù)指針,而非調(diào)用函數(shù)。此時,anotherSum和sum 就指向了同一個函數(shù),因此anotherSum()也可以被調(diào)用并返回結(jié)果。即使將sum設(shè)置為null,讓它與函數(shù)“斷絕關(guān)系”,但仍然可以證明正常調(diào)用anotherSum()。

以上所述就是本文的全部內(nèi)容了,希望能夠?qū)Υ蠹覍W(xué)習(xí)javascript有所幫助。

相關(guān)文章

  • js 代碼集(學(xué)習(xí)js的朋友可以看下)

    js 代碼集(學(xué)習(xí)js的朋友可以看下)

    js 代碼集 學(xué)習(xí)js的朋友可以看下,功能比較多,大家可以自己選擇。
    2009-07-07
  • js自執(zhí)行函數(shù)的幾種不同寫法的比較

    js自執(zhí)行函數(shù)的幾種不同寫法的比較

    js自執(zhí)行函數(shù)的幾種不同寫法的比較,需要的朋友可以參考下
    2012-08-08
  • JavaScript中閉包的詳解

    JavaScript中閉包的詳解

    本文主要介紹了JavaScript中閉包的相關(guān)知識。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • 為什么js中不推薦使用eval函數(shù)(原因分析)

    為什么js中不推薦使用eval函數(shù)(原因分析)

    'eval'函數(shù)是javascript中的一個內(nèi)置函數(shù),它的主要作用是將傳入的字符串作為代碼來執(zhí)行,這篇文章主要介紹了為什么js中不推薦使用eval函數(shù),需要的朋友可以參考下
    2023-10-10
  • js獲取最近一周一個月三個月時間的簡單示例

    js獲取最近一周一個月三個月時間的簡單示例

    時間的獲取和格式化是我們經(jīng)常遇到的問題,下面這篇文章主要給大家介紹了關(guān)于利用js如何獲取最近一周一個月三個月時間的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-12-12
  • 利用element-ui實現(xiàn)遠(yuǎn)程搜索兩種實現(xiàn)方式

    利用element-ui實現(xiàn)遠(yuǎn)程搜索兩種實現(xiàn)方式

    這篇文章主要介紹了利用element-ui的兩種遠(yuǎn)程搜索實現(xiàn)代碼,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-12-12
  • 利用JS實現(xiàn)scroll自定義滾動效果詳解

    利用JS實現(xiàn)scroll自定義滾動效果詳解

    這篇文章主要給大家介紹了關(guān)于利用JS如何實現(xiàn)scroll自定義滾動效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • Bootstrap 實現(xiàn)表格樣式、表單布局的實例代碼

    Bootstrap 實現(xiàn)表格樣式、表單布局的實例代碼

    這篇文章主要介紹了Bootstrap 實現(xiàn)表格樣式、表單布局的實例代碼,需要的朋友可以參考下
    2018-12-12
  • javascript的事件觸發(fā)器介紹的實現(xiàn)

    javascript的事件觸發(fā)器介紹的實現(xiàn)

    這篇文章主要介紹了javascript的事件觸發(fā)器介紹的實現(xiàn),本文所指觸發(fā)器是用程序來觸發(fā)綁定的事件,而不是人為的去觸發(fā),需要的朋友可以參考下
    2014-06-06
  • 一文教你如何優(yōu)雅的使用WebSocket

    一文教你如何優(yōu)雅的使用WebSocket

    WebSocket最大特點(diǎn)就是服務(wù)器可以主動向客戶端推送信息,客戶端也可以主動向服務(wù)器發(fā)送信息,是真正的雙向平等對話,屬于服務(wù)器推送技術(shù)的一種,下面這篇文章主要給大家介紹了關(guān)于如何優(yōu)雅的使用WebSocket的相關(guān)資料,需要的朋友可以參考下
    2022-05-05

最新評論