js学习笔记-引用类型(Function类型)

1、函数声明与函数表达式的区别

    函数声明可以将函数的使用提升到函数所在语句之前,而函数表达式则不行,必须要在函数所在语句之后使用,否则会报“unexpected identifier”错误。

以下是实例:

(1)a();//  正确运行,返回hello

    function a (){

        return “hello”

    }

(2)a(); //报错unexcepted identify

        var a = function (){

          return “hello”

        }

2、函数内部属性,arguments和this

(1)arguments: 是一个类数组对象,包含着传入函数中的所有参数,主要用来保存函数参数,它有一个叫callee的属性,callee是一个指针,指向拥有这个arguments对象的函数;

(2)this:函数执行的环境对象(js中的一个重点,会单独分析)

3、apply()和call()

apply()和call()是每个函数都包含的两个非继承而来的方法,call和apply最大的用途是用来绑定函数的this指向,这样做的好处是解除对象和方法之间的耦合。

apply()和call()存在的唯一区别就是传参方式不同,call()必须明确的传入每一个参数,形如say.call(this, 参数1,参数2,参数3,...),而apply()则可以直接传入arguments对象或数组,如say.apply(this, arguments)或say.apply(this, [参数1,参数2,参数3,...])

你可能感兴趣的:(js学习笔记-引用类型(Function类型))