美文网首页
匿名函数

匿名函数

作者: BR | 来源:发表于2015-08-24 11:21 被阅读0次

    函数定义的两种方式:

    1.函数声明,使用var声明  var a = function() {};

    等号右边可以是匿名函数,也可以是具名函数,但是都不能立即执行,必须通过变量a实例化一个 对象才可以调用:

    //匿名函数

    var a = function (){

             alert(1);

    }

    var b = new a(); //返回1

    //具名函数

    var d = function e(){

            alert(2);

    }

    //直接调用e();会报错

    2.函数表达式;

    function aa(age){

               this.age = age;

               this.foo = function() {

                       alert(1);

                }

    }

    //要调用.foo()的方法或者查找属性age,必须new实例化一个对象,直接在函数aa中不能调用或查找

    var a = new aa(12);

    a.foo();  //alert(1);

    a.age;   //12

    关于立即调用的函数表达式(LIFE),又叫自执行的函数表达式的方法:

    (function() {})();

    (function(){}());

    [function(){}()];

    ~function(){}();

    !function(){}();

    -function(){}();

    +function(){}();

    delete function() {}();

    typeof function() {}();

    void function() {}();

    new function() {}();

    new function() {};

    var f = function() {}();

    1, function() {}();

    1 ^ function() {}();

    1 > function() {}();

    //一元运算符,他们的作用是告诉js解析器附近的匿名函数是一个表达式

    3.函数必须要有函数名,即使是聪明如我的匿名函数也必须要使用var来声明,一个没有函数名的函数要么是一个方法,要么就是自执行函数,若一个匿名函数既不是方法,又不是立即调用函数,就会报错啦!

    4.关于一些错误的处理:

    (1).function(){}();

    看来是想要立即调用一个匿名函数表达式,但是实际上是声明了一个函数,但是函数声明必须要有标识符作为函数的名称;

    var a  =function(){}();

    (2)function  f(){}();

    计划是立即调用一个具名函数表达式,但是实际上是声明了一个函数名为f的函数,末尾()作为分组运算符,必须要提供表达式作为参数;

    相关文章

      网友评论

          本文标题:匿名函数

          本文链接:https://www.haomeiwen.com/subject/kdofcttx.html