自己啓発にふさわしく、私はセニョール・クロックフォードのTGPを読んでいます(そして読み直しています)。しかし、私は彼の非実体化方法の真ん中の部分を理解することはできません。
...
return this.replace(...,
function (a, b) {
var r = ...
}
);
私はそれを理解していると思います:
- this.replaceには、検索値としての正規表現と置換値を生成する関数の2つの引数が渡されます。
- bは、エンティティオブジェクトのプロパティにアクセスするために使用されます。
- リターン
? r : a;
ビットは、テキストをそのまま返すか、エンティティ内の適切なプロパティの値を返すかを決定します。
私がまったく得られないのは、aとbが引数としてにどのように提供されるかfunction (a, b)
です。この関数を何と呼んでいますか?(私はすべてが自己実行的であることを知っていますが、それは私にとってそれを本当に明確にしません。私はこの関数がどのように呼び出されているのか尋ねていると思いますか?)
誰かがこれに似たブローバイブロー分析を行うことに興味があれば、私はそれを本当に感謝します、そして他の人もそうかもしれないと思います。
便宜上、コードは次のとおりです。
String.method('deentityify', function ( ) {
var entity = {
quot: '"',
lt: '<',
gt: '>'
};
return function () {
return this.replace(
/&([^&;]+);/g,
function (a, b) {
var r = entity[b];
return typeof r === 'string' ? r : a;
}
);
};
}());