Js変数のスコープが閉じられています.

1307 ワード

1.  問題コード:

    //   script,              ,   window 
     var username="xiaoming";
     function show() {
         console.log(username);
     }
    console.log(window.username);
    window.show();
  
問題:変数を定義することは、グローバルスコープを定義し、グローバルスコープを汚染することです.
2.  問題2:
  
      var person={
          username:"xiaoming",
          say:function(){
              alert("bbb");
          }
      }

      person.username="  ";
      person.say();
  
 すべての変数は対象内に定義されています.問題は、personは属性を変更し、自分の属性を暴露し、対象に合わないです.
3.  クローズド解決
// Window     ,window   ,
//         script         ,          ,        
//    JQuery jquery       
(function (window,$) {
    var msg="    ";
    function  f00() {
        console.info(msg);
    }
    //  Window    
    window.index= {f00}

    $("body").css("background","red");

})(window,jQuery);


 
     // module4      Window
     index.f00();
 
 ロールフィールドはクローズドにあり、$定義関数を使用して、jsの外側に露出します.