Trong ứng dụng web dựa trên jQuery, tôi có nhiều tập lệnh có thể được đưa vào và tôi chỉ sử dụng một trong số chúng cùng một lúc (tôi biết không bao gồm tất cả chúng tốt hơn, nhưng tôi chỉ chịu trách nhiệm cho JS vì vậy đó không phải là quyết định của tôi). Vì vậy, tôi đang gói mỗi tệp trong một hàm initModule()
đăng ký nhiều sự kiện khác nhau và thực hiện một số khởi tạo, v.v.Chức năng riêng trong JavaScript
Bây giờ tôi tò mò nếu có bất kỳ sự khác biệt nào giữa hai cách xác định chức năng không làm lộn xộn không gian tên chung:
function initStuff(someArg) {
var someVar = 123;
var anotherVar = 456;
var somePrivateFunc = function() {
/* ... */
}
var anotherPrivateFunc = function() {
/* ... */
}
/* do some stuff here */
}
và
function initStuff(someArg) {
var someVar = 123;
var anotherVar = 456;
function somePrivateFunc() {
/* ... */
}
function anotherPrivateFunc() {
/* ... */
}
/* do some stuff here */
}
Hãy xem [câu hỏi này] (http://stackoverflow.com/questions/1013385/what-is-the-difference-between-a-function-expression-vs-declaration-in-javascript). – jwueller