首页 > JS中apply和call传参的问题

JS中apply和call传参的问题

    var color = "红色";
    var box = {
        color:"蓝色"  
    }
    function sayColor(){
        console.log(this.color);
    }
    sayColor.call(box); 
    sayColor.apply(box());  

2个问题
1.想问下,这里的call(box),单独传了个作用域box,参数没有的话就不用传吗?有的话就需要把参数一个个都写进去,不能用arguments是吧?

2.如果用apply()方法的话,这个该怎么写来冒充对象box?

谢谢各位~


call和apply第一个参数都是传进去作为function中的this指向对象的。使用call,参数列表得像普通函数调用一样,一定要一个一个的列在后面;使用apply,参数列表要使用数组,所以也可以传arguments对象进去.

var color = "红色";
    var box = {
        color:"蓝色"  
    }
    function sayColor(param1, param2){
        console.log(this.color, param1, param2);
    }
    sayColor.call(box, 'param1', 'param2'); 
    sayColor.apply(box, ['param1', 'param2']);
【热门文章】
【热门文章】