函数js实现
JavaScript 函数实现方法
JavaScript 中函数可以通过多种方式定义和实现,以下是常见的方法:
函数声明
使用 function 关键字定义函数,具有函数提升特性:
function greet(name) {
return `Hello, ${name}!`;
}
函数表达式 将函数赋值给变量,无提升特性:
const greet = function(name) {
return `Hello, ${name}!`;
};
箭头函数(ES6)
简洁语法,自动绑定当前 this 值:
const greet = (name) => `Hello, ${name}!`;
构造函数
通过 Function 构造函数动态创建(不推荐常规使用):
const greet = new Function('name', 'return `Hello, ${name}!`');
生成器函数(ES6)
使用 function* 定义可暂停执行的函数:
function* idGenerator() {
let id = 0;
while(true) yield id++;
}
异步函数(ES7)
用 async/await 处理异步操作:

async function fetchData(url) {
const response = await fetch(url);
return response.json();
}
函数参数处理
默认参数 ES6 允许设置参数默认值:
function greet(name = 'Guest') {
return `Hello, ${name}!`;
}
剩余参数
使用 ... 收集多个参数为数组:
function sum(...numbers) {
return numbers.reduce((a, b) => a + b, 0);
}
参数解构 直接解构对象参数:
function greet({ name, age }) {
return `${name} is ${age} years old`;
}
高阶函数应用
回调函数 将函数作为参数传递:

function processArray(arr, callback) {
return arr.map(callback);
}
函数柯里化 分步接收参数的函数:
const multiply = (a) => (b) => a * b;
const double = multiply(2);
闭包实现 函数记住创建时的上下文:
function counter() {
let count = 0;
return () => ++count;
}
立即执行函数(IIFE)
定义后立即执行的函数:
(function() {
console.log('立即执行');
})();
函数绑定方法
call/apply/bind 改变函数执行上下文:
const person = { name: 'Alice' };
function greet() { return this.name; }
greet.call(person);
greet.apply(person);
const boundGreet = greet.bind(person);
以上实现方式覆盖了 JavaScript 函数的主要使用场景,可根据具体需求选择合适的方法。ES6+ 新增的箭头函数、默认参数等特性可以简化代码编写,而闭包、高阶函数等概念则提供了更灵活的设计模式。






