我是JavaScript編程新手。我編寫了一個IIFE,它可以幫助我提高理解度。我的意圖是定義一個$函數,當被調用時將自己調用爲構造函數。當代碼運行時,它會產生一個錯誤'太多的遞歸'。我不知道問題是什麼。IIFE引發錯誤
(function() {
//check the global host object
var root = this;
var inside = "inside";
var $ = function() {
return new $(); //this line generates an error 'Too much recursion.'
}
$.check = function(obj) {
console.log(inside);
}
//add the $ to global object
root.$ = $;
}).call(this);
var ins = $();
console.log(ins);
爲什麼你感到驚訝嗎?你期待什麼結果? –
'if(!(this instanceof $))return new $();'? – Ryan