zoukankan      html  css  js  c++  java
  • 自定义函数

    1、函数的定义(命名函数或者函数语句):

    function myfunc(arg_1,arg_2,...,arg_n){

    //执行一些语句

    return "一些数据或者变量";

    }

     

    2、使用函数表达式定义函数(匿名函数): 将一段函数表达式存储在一个变量中。

    函数表达式是一种可以用表达式(而不是语句)声明的未命名函数,也称为匿名函数。

    var myfunc = function(arg_1,arg_2,...,arg_n){

      //执行一些语句

       return "一些数据或者变量";

    }

     

    函数表达式和函数语句的区别:

    (1)当函数语句被定义的时候,在同一个脚本代码中被优先考虑。因此,无论该函数是在定义之前或定义之后都可以被脚本引用。

    (2)函数表达式也可以被作为另一些函数或方法的参数。

    (3)函数表达式和函数语句的区别还体现在内存管理和垃圾回收方面。

    总结:

    如果不是特殊的用途(例如用于定义对象的方法),不推荐使用函数表达式,因为函数语句相比起来更容易阅读和理解,与函数表达式相比,函数语句代码更为简洁而且

    不容易混淆,因为函数表达式既需要var关键字又需要function关键字。

    但是在某些情况下,函数表达式非常有用,一个常见用法就是将函数表达式用于那些使用一次后便丢弃的函数,这样有利于内存管理。另一个用法就是向 prototype 属性附加函数以实现对象方法的定义,这个用法在js面向对象编程时最常见。

     

    3、匿名自执行函数

    语法:

    (function(){

    // 执行一些语句

    })();

    有参数的

    (function(arg_1,arg_2,arg_3){

    // 执行一些语句

    })(arg_1,arg_2,arg_3);

     

    优点:

    (1)由于函数是一个封闭的作用域范围,并且可以嵌套函数,所以可以使用这种函数来实现封装自己的所有函数和变量,从而避免来自多个开发者的相互冲突。

    (2)由于他们位于同一个函数中,所以可以相互引用。(闭包)

    (3)由于外部无法引用函数内部的变量,因此自执行完后很快被释放,这种机制不会污染全局对象。

    (4)相当于定义了一个命名空间,来自不同的开发者的功能位于自己的命名范围内。

     

    如何访问匿名自执行函数里面的函数和对象呢?

    var o = new Object();

      (function(_obj){

        _obj.myfunc =function(){

      };

    })(o);

     

    alert(o.myfunc());

     

    最常用的是将全局对象window 作为参数传进去,这样函数或变量就成为全局函数和变量。

    (function(window,undefind){

      //Jquery定义

    })(window);

     

     4、使用Function 类定义函数

    var functionName = new Function([arg1,arg2,arg3],functionBody);

  • 相关阅读:
    elasticsearch如何设计索引
    LinkedList 的实现原理
    聊聊elasticsearch7.8的模板和动态映射
    elasticsearch7.8权限控制和规划
    cloudera manager server迁移
    2020年终总结
    工作两年半的一次复盘
    聊聊数据结构和算法
    AutoMapper源码解析
    [源码解析] 并行分布式框架 Celery 之 worker 启动 (2)
  • 原文地址:https://www.cnblogs.com/chengmingxiaowu/p/7676700.html
Copyright © 2011-2022 走看看