在 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 非常灵活,适合函数式编程风格。