日期:2014-05-16  浏览次数:20362 次

JavaScript学习笔记(一)---Curry化技术/几个页面加载的区别
Curry化技术是一种通过把多个参数填充到函数体中,实现将函数转换为一个新的经过简化的(使之接受的参数更少)函数的技术.【取自精通JAVASCRIPT一书 --- 感谢洋仔】


它是通过向另外一个函数预填参数而创建了一个新函数; 例

function addGenerator(num){
   
   return function(toAdd){
             return num + toAdd;
          };

}
//创建一个新的函数
var addFive = addGenerator(5);

alert(addFive(4)==9) //true

理解闭包概念!!!

闭包可以解决JAVASCRIPT中新手留下大量多余的全局变量问题通过闭包可将其隐藏如:
//匿名函数 包装
(fucntion(){
    var temp = "测试"; //原本的全局变量
     widow.unload = function(){
          alert(temp);//使用了“隐藏后的temp”
     }
})();

闭包可以直接使用父函数变量,但提供的值并不是父函数初始化的值而是在父函数里的最终值,这样儿存在一个潜在的问题就是你得到的不一定是你想得到的值...
但可以使用一个匿名函数来激发出作用域 如:
//获得一个标签的ID
var obj = document.getElementById("main");
var items = ["click","keypress"];
for(var i=0;i<items.length;i++){
    (function(){
         var temp = items[i];
         //闭名
         obj["on"+temp] = function(){
              alert("temp");
         }
    })();
}

如是不用这个匿名函数来“隐藏”这个全局变量那么闭包只能得到外函数中的最终值而不是我们想得到的两个值!!!

/***********************************************************************************************/

window.onload
页面一运行就加载,页面内的图片可能还没有加载完成!
window.load
必须等待页面所有元素加载完成后才执行 不可以写多个 【写多个只执行最后一个】
jquery.load
页面其它元素都加载完成后在加载这个元素
$(document).ready()等价$(function){}
只等到解析完页面的所有DOM树就加载,页面的图片可能还没有加载完成!可以写入多个

=========================================================================

Window 函数
setTimeout(code,millisec);

code 必需。要调用的函数后要执行的javascript代码串。
millisec 必需。在执行代码前需等待的毫秒数


clearTimeout(id_of_setimeout) 可以取消setTimeout所返回的Id;
1 楼 haidage 2011-04-28  
大家好,我就是洋仔 http://blog.csdn.net/haidage
2 楼 mllongze 2011-04-29  
haidage 写道
大家好,我就是洋仔 http://blog.csdn.net/haidage

不带这样儿地...