javascript基礎攻関(三)——作用域と閉鎖

2291 ワード

javascript基礎攻関(三)——作用域と閉鎖

タイトル:
  • 変数アップの理解を話してください.
  • は、thisのいくつかの異なる使用シーンを説明する
  • .
  • は10個のタグを作成し、クリックした時に対応する番号
  • を弾きます.
  • 作用領域の理解方法
  • 実際に開発されたクローズドアプリケーション
  • コンテキストを実行
  • 範囲:セクションまたは
  • : 、 の
  • : 、 、this、argments
  • :「 」と「 」の い
    console.log(a);  //undefined
    var a = 100;
    
    fn("zhangsan");   //zhangsan,20
    
    function fn(name) {
        age = 20;
        console.log(name, age);
        var age
    }
    
    this
  • thisは に できます. には できません.
  • として
  • を します.
  • として
  • を す.
  • は、 として
  • を する.
  • call apply bind
  • ```js
    var a = {
        name: "A",
        fn: function() {
            console.log(this.name)
        }
    }
    
    a.fn(); //this===A
    a.fn.call({ name: "B" }); //this==={name:"B"}
    var fn1 = a.fn;
    fn1(); //this===window
    
    ```
    
    スコープ
  • ブロックレベル がない
  • は、 とグローバルスコープ
    //      
    if(true){
        var name = 'zhangsan';
    }
    console.log(name);
    
    //         
    var a=100;
    function fn() {
        var a=10;
        console.log('fn',a);
    }
    console.log('global',a);    //100
    fn();  //10
    
  • のみである.
    スコープチェーン
    ```js
    var a = 100;
    
    function fn() {
        var b = 200;
        //             , “    ”
        console.log(a);
        console.log(b);
    }
    fn() //100,200
    ```
    
    みを じる
    シーン
  • は、 り
  • として する.
  • は、パラメータ
  • として します.
        ```js
        function F1() {
            var a = 100;
            //       
            return function() {
                console.log(a);
            }
        }
        //f1       
        var f1 = F1();
        var a = 200;
        f1();  //100
        
        ```
    
    を く
  • アップの を してください.
  • は、thisのいくつかの なる シーンを する.
  • thisは に できます. には できません.
  • として
  • を します.
  • として
  • を す.
  • は、 として
  • を する.
  • call apply bind
  • は10 のタグを し、クリックしたときに する
    var i;
    
  • を きます.
    for(i=0;i<10;i+){(function){var a=document.reate Element('a')a.innersHTML=i+';a.addEventListener('click',function(e){e}e.preventDefault();alert(bonti)()
            
    
    
    4.        
    
        *     
        *     ,        
        *        
    
    5.           
    
            ,