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;
请各位指点一下, 谢谢!
至尊宝的传说
慕勒3428872
随时随地看视频慕课网APP
相关分类