改变this指向的三种方法

改变this指针指向的三种方法

Call()

Call(“你想要指向的this方向”,“后面你要跟的参数”)

    <script>
        function Father(Uname, Uage) {
            this.Uname = Uname;
            this.Uage = Uage;
        }
        function Son(Uname, Uage, score) {
            Father.call(this, Uname, Uage);
            this.score = score;
        }
        var son = new Son("博人", 12, 18);
        console.log(son);
    </script>

在这里插入图片描述
通过这两张图片的对比,可以看到,我没有给son设置Uname和Uage的属性,但是我却能给它赋值,这就是用Call实现了继承的功能,继承了父类的Uname和Uage

apply()

apply(“你要指向的对象”,一个数组形式的参数)
这种一般我们用来和数学内置公式一起用

在这里插入图片描述

bind()

bind(“你要指向的对象”)
这个也是以后较为常用的

    <button>关闭</button>
    <script>
        var btn = document.querySelector("button");
        btn.addEventListener("click", function () {
            this.disabled = true;
            setInterval(function () {
                this.disabled = false;
            }.bind(this), 2000);
        })

通过绑定定时器中的函数指向,让定时器中的函数指向为Button,这样子的话,即使是在定时器的内部函数中,也能指向button这个按钮,帮助我们节省了很多时间

总结

我们可以来看下这三个有什么不同之处

  • Call()主要是用来做继承用
  • apply()主要可以利用数学内置对象来帮助我们求值,因为一般数学公式内的括号只能放几个数,而直接传递数组进去,可以简化我们的一些步骤.
  • bind()主要是用来进行绑定事件,但是又不想页面一开始就执行这个事件,用这个较为合适,这个适用的情况也比较多,前面两个只要一开始就会开始调用.

今天的分享就到此为止了,感谢大家的观看.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值