zoukankan      html  css  js  c++  java
  • JS中的一等公民:函数

    在JavaScript中,函数可以

    1. 作为赋给一个变量
    2. 作为参数传递给另一个函数
    3. 作为另一个函数的返回值

    所以我们说JavaScript的函数是“一等公民”。


    赋值:

    var foo = function() {
        console.log("Hello World!");
    };
    
    foo();

    以上代码把一个匿名函数( Anonymous Function)赋值给了变量foo。你也可以使用具名函数,这样有利于Debug,但要注意,使用具名函数不会影响函数的调用方法,仍然是通过变量名加一对圆括号foo()来调用该函数。


    参数:

    var sayHello = function() {
        return "Hello, ";
    }
    
    var greeting = function(helloMessage, name) {
        console.log(helloMessage() + name);
    };
    
    greeting(sayHello, "Suki"); // "Hello, Suki

    这里把函数sayHello当作参数传给了函数greeting,像函数sayHello这样被作为参数传递的函数就叫回调函数(Callback Function),而像函数greeting这样可以接收另一函数作为参数的就叫高阶函数(High-order Function)。


     返回值:

    var foo = function() {
        return function() {
            console.log("Hello, world!");
        };
    };
    
    //调用方法一:把函数返回值赋值给另一变量
    
    var sayHello = foo();
    sayHello(); //"Hello, world!"
    
    //调用方法二:使用两对圆括号
    
    foo()(); //"Hello, world!"

    注意:如果仅仅是调用了函数foo,则只是返回了另一个函数,而没有执行那个函数。

    像函数foo这种可以把另一个函数当作返回值的函数也叫高阶函数(High-order Function)。

  • 相关阅读:
    ionic新手教程第三课-在项目中使用requirejs分离controller文件和server文件
    高并发測试工具webbench
    内存管理详解
    linux command ---1
    运维方面的软件(系统)
    配置 php-fpm 监听的socket
    FastCgi与PHP-fpm之间是个什么样的关系
    分表处理设计思想和实现
    PHP 命名空间以及自动加载(自动调用的函数,来include文件)
    javascript closure
  • 原文地址:https://www.cnblogs.com/sukiY/p/9194415.html
Copyright © 2011-2022 走看看