javascript小結

  window是瀏覽器構造的對象實例
        //基本類型  Undefined、Null、Boolean、Number和String
        //在函數內部,不使用var 定義,那麼變量屬於window
        //字符串若是內容爲空,if判斷也是false;
        //number 若是=0, if 判斷是false;
        //undefined null       if 判斷都是false;
        //var num = 0;       if 判斷都是false;node

        //數組

 var factorial = (function fact(num) { // 函數名 fact 在外部訪問是undefined
        if (num <= 1) {
            return 1;
        } else {
            return num * fact(num - 1);
        }
    });瀏覽器

//app

// 糟糕的例子 // 構造一個函數,用錯誤的方式給一個數組中的節點設置事件處理程序。 // 當點擊一個節點時,按照預期,應該彈出一個對話框顯示節點的序號, // 但它老是會顯示節點的數目 var add_the_handlers = function (nodes) { var i; for (i = 0; i < nodes.length; ++i){ nodes[i].onclick = function (e) { alert(i); }; } }; //每個事件處理函數,都彈出一個對話框顯示節點的數目 nodes.length
//
// 改良後的例子 // 構造一個函數, 用正確的方式給一個數組中的節點設置事件處理程序, // 點擊一個節點,將會彈出一個對話框顯示節點的序號。 var add_the_handlers = function (nodes) { var i; var helper = function (i) {
return function (e){ alert(i);
}; }; for(i = 0; i < nodes.length; ++ i){ nodes[i].onclick = helper(i); } };
//
情形一:傳入的參數是函數的別名,那麼函數的this就是指向window

  情形二:傳入的參數是被new過的構造函數,那麼this就是指向實例化的對象自己;函數

 

  情形三:若是咱們想把被傳入的函數對象裏this的指針指向外部字面量定義的對象,那麼咱們就是用apply和callthis

相關文章
相關標籤/搜索