iT邦幫忙

第 11 屆 iThome 鐵人賽

0
自我挑戰組

JavaScript核心篇系列 第 16

【JavaScript 核心】什麼是函式 #16

  • 分享至 

  • xImage
  •  
  • 使用 function 這個關鍵字來宣告
  • 具有被呼叫的能力
  • 它包含了程式碼片段
  • 名稱 (選用)
// 函式結構
           //函式名稱  //傳入的參數
  function afunction (parameter) {
    var localVariable = '區域變數';
    console.log(this, localVariable);  // this, 區域變數
    
    return '附加一段' + parameter ;  // 回傳參數
  }
  
  var data = afunction('參數'); // 呼叫函式並傳入參數
  console.log(data); // 附加一段參數

函式陳述式

  • 一定要有名稱才可以被呼叫
//函式陳述式
  function functionA () {
    console.log('函式陳述式','具名函式');
    console.log(functionA);  // f functionA() {...}
  }
  functionA();

函式表達式

//函式表達式
  //先宣告一個變數,再宣告一個函式再透過等號賦予到變數上
  var functionB = function () {
    console.log('函式表達式','匿名函式');
    console.log(functionB);  // f () {...}
  }
  functionB();

不是所有的函式表達式都是匿名函式

  var functionC = function functionD() {
    console.log(functionC, functionD);  // f functionD() {...}
    // 具名函式能夠在函式內被調用
  }
  functionC();

  //在外層是取不到 functionD 的
  console.log(functionD);  // Uncaught ReferenceError: functionD is not defined

  console.log(functionC);  // f functionD() {...}

範例:在函式內調用具名函式

  var num = 1;
  var giveMeMoney =  function giveMoreMoney(coin){
    num += 1;
    console.log('執行 giveMeMoney', num , coin);
    
    // 當傳入金額不夠時 就會不斷觸發 giveMoreMoney
    return coin > 100 ? coin : giveMoreMoney( num * coin );
  };
  
  console.log(giveMeMoney(30));
  // 執行 giveMeMoney 2 30
  // 執行 giveMeMoney 3 60
  // 執行 giveMeMoney 4 180
  // 180

範例 2

  function callSomeone(fn) {
    fn();
  }
  callSomeone(function() { console.log('執行函式') })
  // 傳入之函式不用給名稱
  // 在傳入變為參數時,就如同函式表達式
  // 定義一個函式並賦予到參數上

上一篇
【JavaScript 核心】淺層複製及深層複製 #15
下一篇
【JavaScript 核心】立即函式 IIFE #17
系列文
JavaScript核心篇19
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言