函數和對象的關系
阿新 • • 發佈:2018-08-26
調用 沒有 span 參數 ESS 傳遞 sam 可選 tin
- JavaScript中對象有以下幾種常用功能:
- 對象可以通過字面量來創建。
- 對象可以賦值給變量、數組項、或其他對象的屬性。
- 對象可以作為參數傳遞給函數。
- 對象可以作為函數的返回值。
- 對象能夠具有對象創建和分配屬性。
- JavaScript中函數擁有對象的所有能力:
- 通過字面量創建。
function test(){}
- 可以賦值給變量、數組項、或其他對象的屬性。
1 var test=function(){}; 2 test.push(function(){}); 3 test.data=function(){};
- 可以作為參數傳遞給函數。
function call(test){ test();}; call(
- 可以作為函數的返回值。
1 function return(){ 2 return function(){}; 3 }
- 能夠具有對象創建和分配屬性。
var test=function(){}; test.data="hello";
函數也是對象,唯一的區別是:函數可以被調用。函數會被調用以便執行某種動作。
- 回調函數
其他代碼會在隨後的某個合適時間點“回過來調用”的函數。
- 作用:利用比較器排序。
1 var values=[0,3,2,5,7,4,8,1]; 2 values.sort(function(value1,value2){3 return value1-value2; 4 });
- 函數定義的四種方式(前兩種最常用):函數的創建方式影響著函數被調用的時間、函數的行為以及函數可以在哪個對象上被調用。
- 函數聲明:
- 函數表達式
- 箭頭函數(ES6新增語法)
- 函數構造函數
- 生成器函數
- 函數聲明和函數表達式
1. 函數聲明
function samurai(){ //函數體 }
構成:以強制性function開頭,其後緊跟函數名,以及括號內的可選參數名
2.函數表達式
var a=function(){};
將函數賦給變量。
區別:函數聲明中函數名是強制的,對於函數表達式函數名是可選的。因為函數聲明是獨立語句,函數的基本要求是它能夠被調用,所以它必須有一種被引用方式,只能通過名字。
3.箭頭函數(ES6新增特性)
(param1,param2...)=>expression
接收多個參數並返回表達式的值。
當函數表達式沒那麽簡單時,箭頭操作符後邊需要跟一個代碼塊。
1 var greet=name=>{ 2 var hellostring="greeting"; 3 return hellostring+name; 4 }
5 greet("ml"); //"greetingml"
箭頭函數中return和普通函數一樣,如果return後邊沒有語句,返回值是undefined,反之,返回值為return後邊表達式的值。
函數和對象的關系