zoukankan      html  css  js  c++  java
  • JavaScript系列:ECMAScript函数

      函数是一组可以随时随地运行的语句,它们是ECMAScript的核心。函数由关键字function、函数名加一组参数以及置于括号中要执行的代码声明的。

      函数的基本语法如下:

    function functionName (arg0, arg1, ... ,argN) {
         statements      
    }

      如果函数无明确的返回值,或调用了没有参数的return语句,那么它真正返回的值是undefined。

      1、无重载

      ECMAScript中的函数不能重载。可以使用相同的名字在同一个作用域中定义两个函数,而不引发错误,但真正使用的是最后一个函数。

      2、arguments对象

      在函数代码中,使用特殊对象arguments,开发者无需明确指出参数名,就能访问它们。arguments[0]表示第一个参数(第一个参数位于位置0,第二个参数位于位置1,依此类推)。因此无需明确命名参数,就可以重写函数。

      使用arguments对象检测传递给函数的参数个数,引用属性arguments.length。

      使用arguments对象判断传递给函数的参数个数,即可模拟函数重载。

    function doAdd () {
        if (arguments.length == 1) {
            alert(arguments[0] + 10);
        } else if (arguments.length == 2) {
            alert(arguments[0] + arguments[1]);
        }
    }

      3、Function类

      Function类可以表示开发者定义的任何函数。用Function类直接创建函数的语法如下:

    var function_name = new Function (argument1, argument2, argument3,  ... , argumentN, function_body);

      尽管可用Function构造函数创建函数,但最好不要使用它,用它定义函数比用传统方式要慢得多。不过,所有函数都应看作是Function类的实例。

      因为函数是引用类型,所有它们也有属性和方法。ECMAScript定义了属性length声明了函数期望的参数个数。

    function doAdd(iNum) {
        alert(iNum + 10);
    }
    alert(doAdd.length); // outputs "1"

      ECMAScript函数可以接受任意多个参数(最多25个),属性length只是为了查看默认情况下预期参数个数提供了一种便捷的方式。

      Function对象也有与所有对象共享的标准valueOf()方法和toString()方法。这两个方法返回的都是函数的源代码,在调试时尤其起作用。

      4、闭包

      闭包是指词法表示包括不必计算的变量的函数。即该函数可以使用函数外定义的变量。

      在ECMAScript中使用全局变量是一个简单的闭包实例。

    var message = "Hello World";
    
    function() {
        alert(message);
    }
  • 相关阅读:
    Java Web入门二
    Java web入门之Http请求和响应
    Java中的heap和stack
    JSP和Servlet的区别和联系
    MVC设计思想
    Java中int和Integer的区别
    Java使用文件通道复制文件
    Maven项目的pom.xml配置文件格式初识
    面向对象编程思想
    1.struts 防止表单重复提交 2. 拦截器
  • 原文地址:https://www.cnblogs.com/libingql/p/2709301.html
Copyright © 2011-2022 走看看