js學習之ES6_解構賦值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    // 造三個按鈕
    <button id="btn1">btn1</button>
    <button id="btn2">btn2</button>
    <button id="btn3">btn3</button>
    <script type="text/javascript">
        // 獲取被製造出來的三個按鈕
        let allButton = document.getElementsByTagName('button');
        
        for(var i = 0 ;i <allButton.length;i++){
            allButton[i].onclick = function(){
                console.log(i);
            }
        }

        // 匿名函數
        for(var index = 0 ;index <allButton.length;index++){
            (function(i){

                console.log(i);
            })(index)
        }

        // 快級別函數
        for(let i = 0 ;i <allButton.length;i++){
            allButton[i].onclick = function(){
                console.log(i);
            }
        }
    </script>
</body>
</html>

昨晚太困,寫的不好。

看下面。。。。。。。。。。。鏘鏘!!!!!!

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <h1>CASE1: for 循環的計數器是var的場合,先循環完了,纔去綁定的事件,所以輸出不正。全部是是3.</h1>
    
    <div id="case1">
        <button id="btn1">btn1</button>
        <button id="btn2">btn2</button>
        <button id="btn3">btn3</button>
    </div>
    
    <script type="text/javascript">
        // 獲取被製造出來的三個按鈕
        let allButton1 = document.querySelectorAll('#case1>button');
        
        // 
        for(var i = 0 ;i <allButton1.length;i++){
            allButton1[i].onclick = function(){
                console.log(i);
            }
        }

    </script>

    <h1>CASE2: 使用了匿名函數,關於匿名函數的概念,我還得研究研究,反正匿名函數是可以解決上面case1的尷尬問題,實現了一邊綁定,一邊傳值的效果。所以就是綁定的當時的,計數時候的那個時間點的循環變量。據說是通過index這個形參給傳進去的</h1>

    <div id="case2">
        <button id="btn1">btn1</button>
        <button id="btn2">btn2</button>
        <button id="btn3">btn3</button>
    </div>

    <script type="text/javascript">
        // 獲取被製造出來的三個按鈕
        let allButton2 = document.querySelectorAll('#case2>button');
 
        // 匿名函數
        for(var index = 0 ;index <allButton2.length;index++){
            (function(i){
 
                console.log(i);
            })(index)
        }
 
    </script>

<h1>CASE3: 與case1相比,只是var i  變成了 let j ,神奇不神奇,厲害不厲害,據說這種就是所謂的塊級作用域的使用,相當於case2中那樣使用了匿名函數。</h1>

<div id="case3">
    <button id="btn1">btn1</button>
    <button id="btn2">btn2</button>
        <button id="btn3">btn3</button>
    </div>
    
    <script type="text/javascript">
        // 獲取被製造出來的三個按鈕
        let allButton3 = document.querySelectorAll('#case3>button');
        
        // 塊級別函數
        for(let j = 0 ;j <allButton3.length;j++){
            allButton3[j].onclick = function(){
                console.log(j);
            }
        }
    </script>
    
</body>
</html>

 

匿名函數的參考 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章