在js中有很多的方式 使用函数,他们是什么样的关系呢;

    函数声明

    1. function far(){console.log('bar')}
    2. far() //函数调用
    3. far 代表函数本身

    函数表达式

    1. var far = function(){console.log('bar')}
    2. far()

    函数提升 hoisting

    函数必须是 声明函数,不能是函数表达式

    匿名函数

    1. function(){console.log('far')} 匿名函数一般使用() 包裹起来

    函数自调用

    1. (function(){console.log('hello')})();
    2. 例如在JQuery ;;(function(){})(JQuery); 使用JQuery作为参数 JQuery中添加自己的函数

    函数及对象

    函数本身有自己的属性 和方法

    1. function far(a,b){console.log(arguments.length)}
    2. far.toString()

    函数调用

    1. // 函数闭包
    2. var add = (function () {
    3. var counter = 0;
    4. return function () {return counter += 1;}
    5. })();
    6. add();
    7. add();
    8. add();
    9. // 计数器为 3
    10. // 使用匿名函数(闭包,在里面定义变量,相当于add的属性)
    11. // 函数内嵌
    12. function add() {
    13. var counter = 0;
    14. function plus() {counter += 1;}
    15. plus();
    16. return counter;
    17. }

    函数形式的对象

    在函数内部定义的属性,一般会使用new 来创建一个对象,

    在java中是静态属性,或者静态方法,是不能使用this的;但是在js中如果没有创建的话,this指向父级引用;