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

相关文章
相关标签/搜索