apply、call、bind的使用和区别


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <button id="btn1">查看文本内容</button>
    <input type="text" id="text">
    <script>
        let btn = document.getElementById('btn1');
        let text = document.getElementById('text');

        //一般情况下用call




        //apply第二个参数接收数组 像Math.max方法这个只能接收多个参数的方法 我们可以利用apply传参
        let arr = [2, 1, 8];
        let maxVal = Math.max.apply(null, arr);
        console.log(maxVal)


        //bind会返回一个函数 对于有给定函数要求的 要使用bind 例如onclick只接收函数
        //一般回调函数用bind()
        btn.onclick = function () {
            console.log(this.value);
            return 123;
        }.apply(text);







    </script>
</body>

</html>

文章作者: iamfugui
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 iamfugui !
评论
  目录