js 闭包 实战1

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
	<meta charset="utf-8" />
    <script src="../jquery.js"></script>
    <script>
        $(function () {
            var nodes = $('div');

            //  each能够循环的去绑定事件,  
            //$.each(nodes, function (i, n) {
            //    nodes[i].onclick = function () {
            //        console.log(i);
            //    }
            //});

            for (var i = 0, len = nodes.length; i < len; i++) {

                //  第一种方法是不能够的.
                //nodes[i].onclick = function () {
                //    console.log(i);
                //}


                // 第二种方法是能够的.注意参数的传递.
                (function (i) {
                    nodes[i].onclick = function () {
                        console.log(i);
                    }
                })(i)
                
                // 第三种方法是不能够的
                //var func = function () {
                //    nodes[i].onclick = function () {
                //        console.log(i);
                //    }
                //}
                // func(i);


                // 第四种方法是能够的. 多了一个变量局部变量,
                var func = function(i){
                    nodes[i].onclick = function(){
                        console.log(i)
                    }
                }
                func(i);  
            }


            // 在for循环的外部也是能够调用的
            //func(0);
            //func(1);
            //func(2);
            //func(3);
            //func(4);

        });
    </script>
</head>
<body>
    <div>1</div>
    <div>2</div>
    <div>3</div>
    <div>4</div>
    <div>5</div>
</body>
</html>
相关文章
相关标签/搜索