jsrosetta

Hàm

IIFE

IIFE trong Node.js so với hàm/closure ẩn danh gọi ngay trong Go, Rust, Swift và Java.

Phiên bản tối thiểu
Node.js ≥ 12.20Go ≥ 1.0Rust ≥ 1.58Swift ≥ 2.0Java ≥ 25
Đã chạy thử trên
Node.js 24.12.0Go 1.27.1Rust 1.98.1Swift 6.2.4Java 25.0.4.1

Code Node.js là ES module: lưu file .mjs hoặc đặt "type": "module" trong package.json.

IIFE (Immediately Invoked Function Expression) là hàm được định nghĩa và gọi ngay lập tức, thường để tạo một scope riêng. Go, Rust và Swift không có cú pháp đặc biệt cho việc này — bạn chỉ cần định nghĩa một hàm/closure ẩn danh rồi gọi nó ngay. Java thì khó hơn: lambda expression cần một kiểu functional interface cụ thể nên không thể gọi thẳng, phải ép kiểu (cast) trước khi gọi — không ai viết Java thật kiểu này, thường dùng một block { ... } hoặc method riêng để tạo scope thay vì cố mô phỏng IIFE.

Định nghĩa và gọi ngay một hàm

(function (name) {
  console.log('hello', name);
})('bob'); // hello bob

Tham khảo: github.com/miguelmota/golang-for-nodejs-developers#iife