返回

bind方法

发布时间:2022-10-26 02:46:52 403
<script>
        //演示bind函数的使用
        function count(a, b) {
            return a + b + this.c;
        }
        let num = {
            c: 20
        };
        let numCount = count.bind(num, 10, 30);
        console.log(numCount()); //60

        //封装bind函数
        /*
        思路:
            1.bind方法不会自动调用,所以先返回一个函数
            2.返回后按照call函数的原理进行传参
            3.此时传参会出现两种情况,第一种情况是在bind函数中传参,第二种情况是在bind函数内返回的函数中传参
            4.但是调用Fn函数时bind函数中的参数会先传入,如果bind函数中没有参数,那么就会接收bind函数内返回的函数的参数
        */

        function bind(Fn, obj, ...args) {
            return function(...args2) {
                obj.temp = Fn;
                console.log(...args, ...args2);
                let res = obj.temp(...args, ...args2);
                delete obj.temp;
                return res;
            }
        }

        function add(a, b) {
            return a + b + this.c;
        }
        let obj = {
                c: 5
            }
            //第一种情况:参数在bind函数中
        let b1 = bind(add, obj, 5, 15);
        console.log(b1()); //25

        //第二种情况:参数在bind函数返回的函数中
        let b2 = bind(add, obj);
        console.log(b2(25, 35)); //65
    </script>
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
apply方法 2022-10-26 02:17:22