2016-09-22 11 views
0
#1 //pass obj into self invoke, works fine 
var foo = { 
    a: 1 
}; 

(function(o){ 
    console.log(o.a); 
})(foo); 

#2 //this is not working 
var foo = function(){ 
    this.a = 1; 
}; 

(function(o){ 
    console.log(o); 
})(foo); 

を起動し、私は自分の中にオブジェクトを渡すためにしようと、私はコンストラクタOBJを渡すしようとすると、パスコンストラクタオブジェクト自身に私はJavascriptに新たなんだ関数に

私の問題は、そのは

が動作していない呼び出します

誰でも知っている理由は?

+0

変更する}}(foo); 'to'})(new foo()); ' – evolutionxbox

+0

ha!私はコンストラクタobjから新しいobjを作成するのを忘れました –

+0

デバッガを使用します。それは、SOを使って人を使っている群集ソースデバッグよりも速くて優れています。 –

答えて

0

#2を動作させるには、次のように修正する必要があります。

var foo = (function(){ 
    return this.a = 1; 
})(); 

(function(o){ 
    console.log(o); 
})(foo); 
関連する問題