Javascript 函數(shù)

2018-01-10 15:55 更新

Javascript面向?qū)ο笤O(shè)計 - Javascript函數(shù)


Javascript函數(shù)實際上是對象。

內(nèi)部屬性由雙方括號表示。

Javascript定義了幾個JavaScript中對象的內(nèi)部屬性。

typeof 運算符為任何返回“function"對象與 [[Call]] 屬性。

聲明與表達式

函數(shù)聲明以 function 關(guān)鍵字開頭,并以名稱繼續(xù)的功能。

以下代碼使用函數(shù)聲明文字語法創(chuàng)建函數(shù)將兩個數(shù)字加在一起。

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

函數(shù)表達式不需要函數(shù)后面的名稱。

這些函數(shù)是匿名的,因為函數(shù)對象本身沒有名稱。

函數(shù)表達式通常通過變量或?qū)傩砸谩?/p>

下面的代碼創(chuàng)建一個函數(shù)表達式將兩個數(shù)字加在一起。

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

上面的代碼為變量 add 分配了一個函數(shù)值。

賦值表達式以分號結(jié)尾。

函數(shù)聲明被提升到上下文的頂部。

使用函數(shù)聲明,我們可以定義一個函數(shù)在代碼中使用而不生成錯誤。

例如:

var result = add(5, 5); 

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

JavaScript引擎將函數(shù)聲明提升到頂部和實際上執(zhí)行代碼,就像它是這樣寫的:

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

var result = add(5, 5); 

注意

只要我們在使用它們之前定義函數(shù),我們可以使用函數(shù)聲明或函數(shù)表達式。

函數(shù)作為值

JavaScript函數(shù)可以用作任何其他對象。

我們可以為變量分配函數(shù),將它們添加到對象,將它們作為參數(shù)傳遞給其他函數(shù),并從函數(shù)返回它們。

我們可以使用函數(shù)在任何地方使用參考值。

考慮下面的例子:

function myMethod() { 
   console.log("Hi!"); 
} 
myMethod();        // outputs "Hi!" 

var myMethod2 = myMethod; 

myMethod2();       // outputs "Hi!" 

在這段代碼中,有一個函數(shù)聲明為 myMethod 。

然后一個名為 myMethod2 的變量創(chuàng)建并分配 myMethod 的值。

myMethod myMethod2 都指向同一個函數(shù)。

Javascript函數(shù)是對象。

我們可以將一個函數(shù)作為參數(shù)傳遞給另一個函數(shù)。


例子

以下代碼顯示了如何將函數(shù)作為數(shù)據(jù)傳遞到另一個函數(shù)。

JavaScript數(shù)組上的sort()方法接受比較函數(shù)作為可選參數(shù)。

當比較兩個值時調(diào)用比較函數(shù)。

如果第一個值小于第二個值,則比較函數(shù)返回a負數(shù)。

如果第一個值大于第二個,函數(shù)返回一個正數(shù)。

如果兩個值相等,函數(shù)應(yīng)返回零。

對數(shù)字數(shù)組進行排序,例如:

var numbers = [ 11, 15, 18, 41, 71, 110, 21, 16 ]; 
// hgci.cn
var s = function(first, second) { 
   return first - second; 
};

numbers.sort(s); 

console.log(numbers);

numbers.sort(); 
console.log(numbers); 

上面的代碼生成以下結(jié)果。

在上面的代碼中,比較函數(shù)s被傳遞給sort()。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號