【Javascript】一等公民——函数

在 JavaScript 中,函数是一等公民,这意味着函数可以像其他数据类型(如字符串、数字、对象等)一样被赋值给变量、作为参数传递、或者作为返回值返回。


1. 将函数赋值给变量

你可以将一个函数赋值给一个变量,然后通过变量名调用这个函数。

// 将函数赋值给变量
const greet = function() {
    
    
    console.log("Hello, world!");
};

// 调用函数
greet(); // 输出: Hello, world!

2. 箭头函数

箭头函数是 JavaScript 中的一种简洁的函数写法,也可以赋值给变量。

const add = (a, b) => a + b;

console.log(add(2, 3)); // 输出: 5

3. 函数作为参数传递

函数可以作为参数传递给另一个函数,这种函数被称为回调函数

function runFunction(fn) {
    
    
    fn(); // 调用传入的函数
}

const sayHi = function() {
    
    
    console.log("Hi!");
};

runFunction(sayHi); // 输出: Hi!

4. 函数作为返回值

函数可以作为另一个函数的返回值。

function createGreeter() {
    
    
    return function() {
    
    
        console.log("Hello from the greeter!");
    };
}

const greeter = createGreeter();
greeter(); // 输出: Hello from the greeter!

5. 函数是对象

在 JavaScript 中,函数本质上也是对象,因此可以像对象一样添加属性和方法。

function myFunction() {
    
    
    console.log("This is a function.");
}

// 给函数添加属性
myFunction.property = "I'm a function property!";

console.log(myFunction.property); // 输出: I'm a function property!

6. 匿名函数

没有名字的函数称为匿名函数,通常用于回调或立即执行。

// 匿名函数作为回调
setTimeout(function() {
    
    
    console.log("This runs after 1 second.");
}, 1000);

// 立即执行函数 (IIFE)
(function() {
    
    
    console.log("This runs immediately!");
})();

总结

  • 在 JavaScript 中,函数可以赋值给变量、作为参数传递、作为返回值返回,甚至可以像对象一样拥有属性和方法。
  • 这种特性使得 JavaScript 非常灵活,适合函数式编程风格。