JavaScript探索--2

本文介绍JavaScript中this关键字的作用域及如何通过apply和call方法改变函数调用上下文。同时对比了apply与call的区别,尤其是在参数传递方面的不同。

apply 与 call用法

能够扩展函数赖以运行的作用域
<script>
        var color = '红色';
        var box = {
            color : '蓝色'
        }
        function sayColor() {
            console.log(this.color);
        }

        sayColor.apply(this);//this指代window作用域
        sayColor.apply(box);//box指代box作用域
</script>

注意:apply与call用法一样,只是传递的参数不同

<script>
    function sum(num1, num2) {
        return num1 + num2;
    }
    function add(num1, num2) {
        return sum.apply(this, arguments);//apply传递参数可以用arguments对象代替
        return sum.call(this, num1, num2);//call传递参数必须每个都写
    }

    add(10,10);
</script>

转载于:https://blog.51cto.com/531651/2088155

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值