美文网首页简友广场想法程序员技术栈
前端之路——函数调用方式

前端之路——函数调用方式

作者: 三点水滴 | 来源:发表于2019-04-20 14:23 被阅读4次

JavaScript中函数调用的方式

  • 作为普通函数调用

    function foo(){
      console.log("作为普通函数调用");
    }
    foo()
    
  • 作为对象方法调用

    var o = {
      foo: function(){
        console.log("作为对象方法调用");
      }
    }
    o.foo()
    

  • 作为构造函数调用

    function Foo(){
      this.bar = "作为构造函数调用";
    }
    
    var o = new Foo();
    console.log(o.bar);     //作为构造函数调用
    

  • 使用call、apply调用

    function foo(){
        console.log(this.a);
    }
    var a = "作为普通函数调用";
    foo();  //作为普通函数调用
    var o1 = Object.create(null);
    var o2 = Object.create(null);
    o1.a = "使用call调用";
    o2.a = "使用apply调用";
    foo.call(o1);   //使用call调用
    foo.apply(o2);  //使用apply调用
    

    call、apply的作用是一样的——将函数的执行上下文(this)绑定到第一个参数上,区别在于call可以将原函数的其他参数直接传入,而apply则是以数组的形式传入。

    //这里不做任何校验
    function foo(a, b){
        return this.number + a + b;
    }
    var o = {
        number: 2
    }
    foo.call(o, 2, 2);      //6
    foo.apply(o, [2,2]);    //6
    

相关文章

网友评论

    本文标题:前端之路——函数调用方式

    本文链接:https://www.haomeiwen.com/subject/mboeeqtx.html