在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/網(wǎng)絡(luò)安全  HTML/ js解除綁定事件的問(wèn)題

js解除綁定事件的問(wèn)題

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="text">
<script>
    var input = document.querySelector('input');
    input.addEventListener('input',aaa,false)
    function a(e) {
        setTimeout(function () {
            b(e);
        },200)
    }
    function b(e) {
        input.removeEventListener('input',aaa,false);
    }

    function aaa(e) {
        console.log(e.target.value);
        a(e);
    }
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="text">
<script>
    var input = document.querySelector('input');
    input.addEventListener('input',aaa.bind(this),false)
    function a(e) {
        setTimeout(function () {
            b(e);
        },200)
    }
    function b(e) {
        input.removeEventListener('input',aaa.bind(this),false);
    }

    function aaa(e) {
        console.log(e.target.value);
        a(e);
    }
</script>
</body>
</html>

上面兩個(gè)代碼為什么一個(gè)可以解除DOM的綁定的事件,一個(gè)不可以,原因出現(xiàn)在bind這個(gè)函數(shù),我想知道為什么bind(this)就不能實(shí)現(xiàn)這個(gè)功能呢????

回答
編輯回答
薄荷糖

每次 bind() 都會(huì)生成一個(gè)新的函數(shù)返回出來(lái),所以 a.bind(o) !== a.bind(o)

2017年12月8日 10:37
編輯回答
厭遇

每次使用bind都會(huì)返回一個(gè)函數(shù)對(duì)象,你在add和remove中兩次使用bind返回了兩個(gè)不同的函數(shù)對(duì)象,所以無(wú)法取消事件綁定。

2017年1月20日 03:51