美文网首页
3.7 函数

3.7 函数

作者: meiqiuyang | 来源:发表于2018-05-17 23:14 被阅读0次

    函数对任何语言来说都是一个核心的概念。通过函数可以封装任意多条语句,而且可以在任何地放任何时间调用执行。ECMAScript中的函数使用function关键字来声明,后跟一组参数以及函数体。函数的基本语法如下:

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

    以下是一个函数示例:

    function sayHi(name, message) {
        console.log("Hello " + name + "," + message);
    }
    

    ECMAScript中的函数在定义时不必指定是否返回值。实际上,任何函数在任何时候可以通过return语句后跟要返回的值来实现返回值。例子:

    function sum(num1, num2) {
        return num1 + num2;
    }
    

    这个函数会在执行完return语句之后停止并立即退出。因此,位于return语句之后的任何代码都永远不会执行。
    3.7.1 理解参数
    ECMAScript函数的参数与大多数其他语言不同。ECMAScript函数不介意传递进来多少阐述,也不在乎传进来参数是什么类型。之所以这样,因为在ECMAScript中的参数在内部都是用一个数组来表示的。函数接收到的始终都是这个数组,而不关心数组中包含哪些参数。实际上,在函数体内可以通过arguments对象来访问这个参数数组,从而获取传递给函数的每一个参数。
    其实,arguments对象只是和数组类似(它并不是Array的实例),因为可以使用方括号语法访问它的每一个元素(即第一个元素是arguments[0],第二个元素是arguments[1],以此类推),使用length属性来确定传递进来多少参数。
    如果要实现类似于重载的功能,可以使用下面的方法:

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

    3.7.2 没有重载
    ECMAScript函数不能像传统意义上实现重载。其他语言,可以为一个函数编写两个定义,只要这两个定义的签名(接受的参数的类型和数量)不同即可。
    如果要实现重载,可以参考上一章的例子。

    相关文章

      网友评论

          本文标题:3.7 函数

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