Function.prototype.method = function (name, func) {
this.prototype[name] = func; return this;
};String.method('deentityify', function() { //請問這個函數時怎么立即執行的
var entity = { quot: '"', lt: '<', gt: '>'
}; return function() { return this.replace(/&([^&;]+);/g, function(a, b) { //replace 傳給函數的不是三個參數么這兩個代表什么?
var r = entity[b]; return typeof r === 'string' ? r : a;
});
};
}()); //標記蝴蝶書上看到第四章模塊一節遇到的問題, 這個函數不是匿名函數么,按我的理解應該在function函數體外加個括號啊,向這樣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;
});
};
})()); //標記這也能執行, 結果也一樣, 但是有什么不同么?對于沒加括號的函數是不是這樣,它在執行下面這一句時執行, 這樣的話就是函數表達式,也就不需要括號了。this.prototype[name] = func;請各位指點一下, 謝謝!
我在蝴蝶書上遇到的問題,關于函數的立即執行
至尊寶的傳說
2018-08-10 13:29:50