JavaScript之函数

1. 函数的创建方式

1.1 静态方法

1
2
function add(a,b){return a + b;}
var add = function(a,b){return a + b;}

1.2 动态方法

1
var add = new Function("a","b","return a + b;");

2. 函数参数及arguments

1
2
3
4
function add(a,b,c){    //函数对象,对象本身有一个length属性
console.log(add.length); //形参的个数
console.log(arguments.length); //实参的个数
}

arguments:1.仅在函数里面有。2.专为函数参数设计的对象。3.伪数组。4.callee(也是参数,它是指向函数本身自己)

1
2
3
4
5
6
7
8
//匿名函数
var x = function(a,b,c){
arguments.callee.length; //3
}
//上面的等价于下面的
function add(a,b,c){
add.length; //3
}

3. 函数的三大特性

  1. 方法特性() 运行大括号包裹的代码
  2. 对象特性 . 获取对象的属性
  3. 类的特性 new 创建类似对象

    4. 函数的call、apply、bind

    4.1 call、apply

    call、apply定义:把函数临时赋值到对象上面并执行。
    1
    2
    3
    4
    //call:
    function.call(obj,args1,args2)
    //apply:
    function.apply(obj,args)

两者区别:传递参数的形式不一样。
apply参数是数组,也可以是一个伪数组,只要能用下标访问到就可以。

4.2 bind

bind定义:把函数拷贝一份,并插入到对象作用域上面。语法:

1
obj.e = function.bind(obj,args1,args2)