![](/img/trans.png)
[英]Does Crockford's "deentityify" method in The Good Parts actually work?
[英]Crockford's deentityify method - p.41 of The Good Parts
在自我改進方面,我正在閱讀(並重讀)SeñorCrockford的TGP。 但是,我不能理解他的深化方法的最中間部分。
...
return this.replace(...,
function (a, b) {
var r = ...
}
);
我想我明白了:
? r : a;
? r : a;
bit確定是按原樣返回文本還是返回實體中相應屬性的值。 我根本沒有得到的是如何將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;
}
);
};
}());
a
不是數字偏移量,它是匹配的子字符串 。
b
(在這種情況下)是第一個分組,即匹配減去周圍的&
和;
。
該方法檢查以確保實體存在,並且它是一個字符串。 如果是,那就是替換值,否則它被原始值替換,減去&
和;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.