AirBnb Javascript Style Guide建議模塊下面的代碼模式:函數(全局){...}(this)如何工作?
// fancyInput/fancyInput.js
!function(global) {
'use strict';
var previousFancyInput = global.FancyInput;
function FancyInput(options) {
this.options = options || {};
}
FancyInput.noConflict = function noConflict() {
global.FancyInput = previousFancyInput;
return FancyInput;
};
global.FancyInput = FancyInput;
}(this);
但是,一旦你比如運行:
FancyInput({a: 1, b: 2});
控制檯上顯示這個錯誤「遺漏的類型錯誤:無法設置的未定義的屬性‘選項’」 。
我想明白爲什麼這裏面的FancyInput函數是Window。到目前爲止,我可以在開始時擴展這個模塊模式。我應該以另一種方式綁定它嗎?
難道你不應該用'var x = new FancyInput({...})'調用它嗎? –