gpt4 book ai didi

javascript - 模块 - JavaScript : Good Parts. 此回调如何获取其参数?

转载 作者:行者123 更新时间:2023-12-03 05:23:11 27 4
gpt4 key购买 nike

我正在阅读 Douglas Crockford 所著的著名的“JavaScript:The Good Parts”。这当然是一本很棒的书。虽然我可能还没有准备好,但我想尝试一下。我需要一些帮助来理解以下示例。 replace() 中的第二个参数采用 2 个参数 ab。但它们是在哪里定义的呢?他们如何取值?提前致谢。我确实提到了另一个stack ,但我不认为这真的有帮助。

String.method('deentityify', function ( ) {

// The entity table. It maps entity names to
// characters.

var entity = {
quot: '"',
lt: '<',
gt: '>'
};

// Return the deentityify method.

return function ( ) {

// This is the deentityify method. It calls the string
// replace method, looking for substrings that start
// with '&' and end with ';'. If the characters in
// between are in the entity table, then replace the
// entity with the character from the table.

return this.replace(/&([^&;]+);/g,
function (a, b) {
var r = entity[b];
return typeof r === 'string' ? r : a;
}
);
};
}( ));

最佳答案

可以编写函数来接受其他函数作为参数。此类函数称为 Higher-order functions 。在此示例中,ab 只是函数参数的名称。具体分配给该参数的内容取决于replace的实现。

这个想法的一个很好的例子是

var items = [{name:"item1",price:100}, {name:"item2",price:200}];

// lets find an object in the array, that has name "item2"
var result = items.find(function(a){return a.name==="item2"});
console.log(result);

在此代码中,函数 find 接受确定匹配标准的函数。函数 find 的代码将迭代数组并对每个元素应用匹配条件函数,直到数组结束或找到第一个匹配项。为了更好地理解,您可以更改参数函数,例如:

result = items.find(function(whatever){return whatever.price>=100});
result = items.find(function(whatever){return whatever.price>100});

关于javascript - 模块 - JavaScript : Good Parts. 此回调如何获取其参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41281522/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com