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

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

作者: 三点水滴 | 来源:发表于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