0

次のコード例は同じですか?異なるJS名前空間宣言

バージョン1:

var myNamespace = {}; 
myNamespace.say = function() {...} 

バージョン2(JS-フィドル:https://jsfiddle.net/542wbkat/):

var myNamespace = new function() { 
    this.say = function() {...}; 
} 

バージョン3:

var myNamespace = { 
    "say": function() {...} 
} 

私は純粋なJavaの背景から来て、この私にちょっと混乱しています。私はそれがすべて正常に動作するコードをテストしましたが、JSが内部的に異なるバージョンを処理するかどうかは不思議です。この記事を書く前に、私はMozilla Dev Network https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objectsの文書を読んでいましたが、まだ私の頭のarroundをラップすることはできません。

その他の質問 「myNamespace」名前空間で作成した関数を(クラスのインスタンスとして)インスタンス化できますか?または私はこれを得ています

乾杯!

+0

さて、私は今、古いコードをクリーンアップしていると私は3種類のバージョン2を使用したファイルや、私が掃除していたプログラムを見つけました正常に静かに実行されていた。私は自分でスクリプトをテストしました。 – FabianTe

+0

私は動作するバージョン2用のフィドルを作成しました: https://jsfiddle.net/542wbkat/ – FabianTe

+0

関数で 'new'を使用しないでください.... –

答えて

0

すべての道は差がないオブジェクト

ある

console.log(typeof myNamespace);  
// object 
+0

そして、静的またはインスタンス化可能な関数を作成する1つの宣言のようなJava同等の違いはありませんか? – FabianTe

関連する問題