Tìm hiểu về Nested Functions và Closures trong Javascript
Trong Javascript, bạn có thể lồng 1 hàm bên trong 1 hàm khác. Tất cả các biến (variables) cũng như đối số (arguments ) từ hàm cha (outer function) đều được "kế thừa" từ hàm con (inner function). Nói cách khác, Inner function chứa Scope của outner function.Trong khi đó outer function không thể ...
Trong Javascript, bạn có thể lồng 1 hàm bên trong 1 hàm khác. Tất cả các biến (variables) cũng như đối số (arguments ) từ hàm cha (outer function) đều được "kế thừa" từ hàm con (inner function). Nói cách khác, Inner function chứa Scope của outner function.Trong khi đó outer function không thể sử dụng được các biến (variables) cũng như đối số (arguments) của inner function . Code example
function outside(a) { function inside(b) { return a + b; } return inside; } outside(1)(4) // return 5;
Cùng giải thích 1 chút nhé:Trong hàm outside (outner function) ta có định nghĩa 1 hàm inside() , hàm này làm nhiệm vụ đơn giản là trả về tổng của 2 số - 1 tham số được truyền vào từ outner function, 1 tham số được truyền vào từ chính inner function . Cuối cùng, hàm outside sẽ trả về 1 hàm return inside;
Closures are functions that refer to independent (free) variables (variables that are used locally, but defined in an enclosing scope). In other words, these functions 'remember' the environment in which they were created. Đọc định nghĩa có vẻ khá lằng nhằng