js函数

js函数

  • 函数的声明有3种,函数声明语句,函数表达式,Function构造函数

    • 函数声明语句function fn(a,b,c){...}

    • 函数表达式

      var hello = function hel(x, y, z) {
          return x + y + x;
      }
      //hel只能在函数内部使用
  • Function构造函数 var fn = new Function("x", "y", "return x+y;")

    把函数当做构造方法使用的时候,如果函数返回一个对象,那么new出来就是这个对象,如果返回的不是对象或者不返回,则new出来的是这个函数对象本身。

    函数的调用有4种方式

    1. 函数调用模式 2. 方法调用模式 3.构造调用模式 4. 间接调用模式

    函数调用模式里,非严格模式下,this指向window, 严格模式下,this是undefined

    fn里的this指向当前的obj对象

    构造函数调用中,this指向当前新构造的函数对象。

    函数传参:

    非严格模式下,函数可以有同名形参,但是这个形参取值是当前赋值的最后一个实参

    参数个数:实参比形参少,后面的都是undefined. 实参比形参多,可以在函数内部用arguments(类数组)接收所有的实参

    函数重载:

    js中不存在重载,同名函数,后面的会覆盖前面的。

    函数属性:

    arguments.length: 实参个数。函数名.length: 形参个数

    每一个函数都有一个prototype属性

    非严格模式下,call/apply方法,传入null/undefined, this会被转换成window对象

    上图的这种技术叫做函数柯里化。

    发表回复

    *您的电子邮件地址不会被公开。必填项已标记为 。

    *
    *