apply与call应用场景

来源:6-3 [JavaScript]this

llo蛋蛋oll

2016-07-11 09:05

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

写回答 关注

3回答

  • _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)}

    小白冲冲冲 回复llo蛋蛋o...

    这样看没什么区别,但有时需要绑定特殊的参数就有用处了

    2016-09-08 20:44:30

    共 2 条回复 >

JavaScript深入浅出

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

281101 学习 · 1020 问题

查看课程

相似问题