簡體   English   中英

在javascript中傳遞一個函數作為參數

[英]pass a function as argument in javascript

我目前正在解決一個練習,我面臨將一個函數作為參數傳遞給另一個函數的問題。 練習是: 1. 聲明一個函數,它接受兩個參數ab ,並返回這些參數的總和。 var add = function(a,b){return a+b;};

2.聲明變量計算器並為其分配一個函數,該函數接受三個參數a,b 和 c 計算器的主體內,調用作為參數c傳遞的函數,作為參數ab傳遞。 var calculator = function(a,b,c=add(a,b)) { var invoke = c; console.log(invoke); };

3.invoke 計算將sum函數作為第三個參數傳遞給它。 它應該是這樣的嗎? calculate(x,y,sum());

提交代碼時,我收到以下錯誤:函數計算應打印以 x 和 y 作為參數調用 undefined 的結果;

任何人都可以幫忙嗎?

“調用作為參數 a 和 b 傳遞的函數 c”是c(a,b)的很多詞

聽起來第二步的結果應該是這樣的:

var calculator = function(a,b,c) { return c(a,b) }

您應該了解什么是“一流功能”。 實際上,這表示函數就像所有事物一樣都是值。

var a = f()var a = f之間存在巨大差異。 前者調用運行f並將結果保存在a 后者將f自身保存在a 這意味着a是一個函數,您可以執行a() - 它等於f()

如果要創建一個以另一個函數為參數的函數(新函數稱為高階函數,現有函數稱為回調函數),請按以下步驟操作:

function add(a, b) {
  return a + b;
}

function calculator(a, b, callback) {
  return callback(a, b); // Invoke the function stored in `callback` with parameters `a` and `b` and return the result
}

現在我把第三部分留給你作為練習......

編輯:

從 ES6 開始,您可以定義表單function(param = default)默認參數,但是為了使用add作為默認值,您應該確保在calculate之前聲明它,以便當 js 引擎看到calculate的聲明時它已經知道什么是add

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM