我想成为一名javascript程序员,所以我试图阅读并理解chosen plugin中的代码。
我知道如何创建一个jquery插件,我已经阅读了有关模块模式的内容, 但这段代码对我来说还不清楚:
//...
attaching to jQuery object
//...
$.fn.extend({
chosen: function(options) {
return $(this).each(function(input_field) {
if (!($(this)).hasClass("chzn-done")) {
return new Chosen(this, options);
}
});
}
});
//...
//...
//...
Chosen = (function() {
__extends(Chosen, AbstractChosen);
function Chosen() {
Chosen.__super__.constructor.apply(this, arguments);
}
// ...
// attaching various events
// ...
return Chosen;
})();
如果Chosen是一个自我调用的函数 - 为什么要使用 new 语句来启动它? 谢谢
答案 0 :(得分:1)
Chosen
是从内部作用域返回的函数/构造函数,它来自“自调用函数”。这就是为什么用new
调用它。