1

このコード例では:

    (function(){
           var obj = function() {

           };

           obj.prototype.hello = function(){
                 console.log('Hello World!');
           };
    })();

多くの図書館がこれを行っているのを見ます。コードをすぐに呼び出される関数式 (IIFE)でラップするのが良い方法なのはなぜですか? jquery のように、外部からこのオブジェクトにアクセスするにはどうすればよいでしょうか。

私がこのようなことをした場合:

   var test = new obj();

obj が未定義であることがブラウザーに表示されます。

4

1 に答える 1

6

外部スコープの汚染を避けるため。変数がそれから「抜け出す」ことはないと確信しています。しかし、はい、エクスポートする必要があります。内部から使用window.obj = obj;する (グローバルにする) か、それを返します。

var obj = (function() {
  var obj = function() {};
  obj.prototype.sayHello = function() {}; 
  return obj;
})();
于 2013-08-22T18:46:20.083 に答える