两个小技巧,看看你有没有使用过

1

<1>//找到id为“main”的元素

var obj=document.getElementById("main");

obj.style.border="1px solid red";

//初始化一个在一秒后执行的回调函数(callback)

setTimeout(function(){

//隐藏对象

obj.style.display="none";

} ,1000);

<2>//一个延迟显示警告信息的通用函数

function delayAlert(msg, time)

        {

            //初始化一个封装的回调函数

            setTimeout(function (){

            //它将使用包含本函数的外围函数传入的msg变量

            alert(msg);
            },time);

        }    

          //用两个参数调用delayAlert函数

        delayAlert("welcome",2000);

第一个例子很简单,不过是个在注册后1000毫秒后发生的setTimeout回调函数,执行的时候还应用了obj变量

(这肯定是全局变量,因为它连id都有,id是main)

第二个函数 delayAlert展示了解决setTimeout混乱的一个方法,并且指明可以在函数作用域内使用闭包

这里主要考虑的是作用域的问题

2        function addGenerator(num)//用闭包实现函数Curry化
        {
            return function(toAdd){
                return num+toAdd;
            };
        }
        var addFive=addGenerator(5);
        alert(addFive(4)==9);
posted @ 2009-01-07 11:05  mshybinbin  阅读(233)  评论(13)    收藏  举报