问答详情
源自:6-3 [JavaScript]this

apply与call应用场景

还是没搞懂什么时候需要用到apply与call方法

提问者:llo蛋蛋oll 2016-07-11 09:05

个回答

  • _Doogie
    2016-09-08 11:02:42
    已采纳

    如果单纯只是在一个函数中调用另一个函数是没什么多大区别,apply / call 的最大作用就是改变上下文
    比如说:
    var name = "张三";
    
    //在全局里定义函数func1
    function getName(){
        return this.name;
    }
    
    //在对象里定义函数func2
    var obj = {
        name:"李四",
        showName:function(){
            return getName.apply(this);    //在showName里调用getName,并将this从window改变为obj
        }
    };
    
    console.log(obj.showName());    //"李四"


  • 大麦1943
    2016-08-08 12:04:48

    1. 函数的调用需要用到对象。而上面说到的两个都是函数;

    2. 其实你可以简单地理解为这两个方法就是为了改变函数的作用域。

  • 小白冲冲冲
    2016-07-12 20:35:30

    假设有函数fun1,在另一个函数fun2中想实现fun1的效果,就可以用fun2(data){return fun1.apply(fun2,arguments)}