JavaScript的書「雄辯的javascript」JavaScript中的高階函數是什麼意思?
function negate(func) {
return function(x) {
return !func(x);
};
}
var isNotNaN = negate(isNaN);
show(isNotNaN(NaN));
有人解釋和問題的標題說的是高階函數,這是什麼代碼呢?
JavaScript的書「雄辯的javascript」JavaScript中的高階函數是什麼意思?
function negate(func) {
return function(x) {
return !func(x);
};
}
var isNotNaN = negate(isNaN);
show(isNotNaN(NaN));
有人解釋和問題的標題說的是高階函數,這是什麼代碼呢?
當大多數人認爲的功能,他們接受的對象或值作爲參數,同樣返回一個對象或值,如function addTwoNumbers(int x, int y)
。
在數學和計算機科學中,「高階函數」就像任何其他的功能,不同的是,除了是值的參數,也可以接受一個函數作爲參數。
...這是所有高階功能,真的:)
在您發佈的例子,negate
是一個高階函數,因爲它有一個參數func
這是一個函數(或者更確切地說,分配給一個功能)。
negate
更進一步:它不僅僅調用func
並取消其結果,而是返回一個匿名函數(即位於內部的return function(x)
位)。
所以isNotNaN
變量然後具有較早匿名功能的類型(和價值)。
閱讀http://stackoverflow.com/questions/13212940/higher-order-functions-javascript – Ejaz
是你的問題高階函數是什麼或這個特定功能在做什麼?我認爲函數名和下面的應用程序已經解釋了它在做什麼,不是嗎?更高階的函數是什麼,在維基百科上進行了解釋:https://en.wikipedia.org/wiki/Higher_order_function。 –
我不明白這個功能可以解釋嗎? – raziq