以下是Udacity给出的示例:
var favoriteMovie = function displayFavorite(movieName) {
console.log("My favorite movie is " + movieName);
};
function movies(messageFunction, name) {
messageFunction(name);
}
movies(favoriteMovie, "Finding Nemo");
返回:我最喜欢的电影是海底总动员。
答案 0 :(得分:0)
传递函数的规范示例是允许使用单个算法对多种方式进行排序。你可能有:
function compare(a, b) {
return a < b;
}
在一个案例中按升序排序并且:
function compare(a, b) {
return a.name > b. name;
}
按名称按降序排序。然后你只需要编写一个排序算法来传递比较函数。
答案 1 :(得分:0)
正如Carcigenicate所说,这些不是内联函数的一个例子。内联函数是函数表达式。您所做的是函数语句的示例。
以下是内联函数的示例:
console.log(function(movieName){
return("My favorite movie is " + movieName);
}("Finding Nemo"));
关于函数语句,如在您的示例中,它们通常用于抽象。从书Eloquent JavaScript, Chapter 5:
<强>抽象强>
在编程环境中,通常会使用这些类型的词汇表 称为抽象。抽象隐藏细节并为我们提供能力 在更高(或更抽象)的层面上讨论问题。
作为类比,比较这两种豌豆汤的配方:
每人将1杯干豌豆放入容器中。加水直到 豌豆被很好地覆盖了。将豌豆留在水中至少12 小时。将豌豆从水中取出并放入烹饪锅中。 每人加4杯水。盖上锅,保持豌豆 憋了两个小时。每人半个洋葱。切成碎片 用刀子。加入豌豆。每个人吃一根芹菜 人。用刀切成碎片。加入豌豆。拿一个 每人胡萝卜。把它切成碎片。用刀!把它添加到 豌豆。再煮10分钟。
第二个食谱:
每人:1杯干豌豆,半切碎的洋葱,一根茎 芹菜和胡萝卜。
浸泡豌豆12小时。在4杯水中煮2小时(每次 人)。切碎并加入蔬菜。再煮10分钟。
第二个更短,更容易解释。但你确实需要 了解一些与烹饪相关的词 - 浸泡,煨,剁,和我 猜,蔬菜。
编程时,我们不能依赖我们需要等待的所有单词 对于我们在字典中。因此,你可能会陷入这种模式 第一个配方 - 计算出计算机必须执行的精确步骤, 一个接一个地对他们所表达的更高层次的概念视而不见。
对于程序员来说,它必须成为第二天性 乞求被抽象成一个新词。