老师我想让this的值也传入到fun2中,该怎么定义

老师我想让this的值也传入到fun2中,该怎么定义

<script>

        var a =1

        function fun1(){

            fun2.apply(this,arguments);

        }


        function fun2(a,b,c){

            alert(a+b+c);

        }


        fun1(33,44);

    </script>


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,如果想让this的值传入fun2函数中,可以使用call方法,代码如下

var a = 1
function fun1() {
    fun2.call(this,...arguments,this.a); // 先展开arguments对象,再传入this.a
}
function fun2(a, b, c) {
    alert(a + b + c);
}
fun1(33, 44);

也可以将this的值作为参数直接传入fun1函数,如下

var a = 1
function fun1() {
    fun2.apply(this, arguments);
}
function fun2(a, b, c) {			
    alert(a + b + c);
}
fun1(33, 46 ,this.a);    // 将this.a作为参数传入fun1

祝学习愉快!

  • 扶耳摩兔 提问者 #1

    ...arguments就是展开arguments类数组对象的写法吗

    2021-07-21 12:14:05
  • 好帮手慕然然 回复 提问者 扶耳摩兔 #2

    同学你好,是的,...arguments就是将arguments类数组中的元素一个个罗列出来,并用逗号分隔,如下

    fun2.call(this,...arguments,this.a);

    相当于

    fun2.call(this,33,44,this.a);

    祝学习愉快!

    2021-07-21 13:36:45
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师