【发布时间】:2020-10-04 23:33:54
【问题描述】:
我是 JavaScript 新手,只是想弄清楚这行代码。
据我所知,operator 这个词只是一个随机词,可以是任何东西。但是它怎么知道用户正在引用单词 add/subtract/multiply/divide 而这些单词也可能是其他任何东西,并且可以说它是那个 .js 文件中的一堆其他函数。运算符如何返回正确的输入?
function add(num1, num2) {
return num1 + num2;
}
function subtract(num1, num2) {
return num1 - num2;
}
function multiply(num1, num2) {
return num1 * num2;
}
function divide(num1, num2) {
return num1 / num2;
}
function calculator(num1, num2, operator) {
return operator(num1, num2);
}
【问题讨论】:
-
你的意思是如果你做
calculator(1, 2, add),operator(num1, num2)怎么“知道”operator是add?函数是一个对象。它不需要通过名称来引用。传递的函数可以是没有名字的匿名函数。 -
你需要更清楚。此代码不返回任何内容,因为没有调用任何函数...
-
目前,这段代码什么也不做。您需要使用正确的参数调用函数并使用它们的返回值来查看任何效果。
标签: javascript higher-order-functions