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>
相關文章
相關標籤/搜索