我需要写&管理当前项目的大量JavaScript代码。
我将它们分成多个主要基于模块的.js文件。
所以,现在我有了例如:
Map.js // deal with google map issue
Common.js // common functions that will share by all modules
User.js // user module js code
Geofence.js // geofence module js code
etc.....
例如,在我的User.js文件中
如果我想声明一个仅在User.js文件中使用但外部无法访问的函数,该怎么办?我该怎么办?
var User = {};
User.registerModule = function () {
$('#user').click(function () {
Common.showLeftScrollbar();
getAllUsers();
// ...
});
}
function getAllUsers(){ // how to hide this function
// get
return users;
}
因此,在我的主页中,我只需要与多个.js文件进行协调。访问允许访问的内容。
$(document).ready(function (data) {
GoogleMap.initialiseGoogleMap();
Common.refreshRightScrollbar();
User.registerModule();
// ...
});
这是我第一次写js而没有足够的时间来学习整本书。那么,在您看来,请问这个结构是否可以使用许多js代码?以及如何隐藏我不想在外面访问的功能?
答案 0 :(得分:2)
隐藏该功能,你有不同的可能性
将您的代码放在一个直接的自执行匿名函数
中var User = {}; // this should not be enclosed too
(function() {
User.registerModule = function () {
$('#user').click(function () {
Common.showLeftScrollbar();
getAllUsers();
// ...
});
}
function getAllUsers(){ // how to hide this function
// get
return users;
}
})();
将该函数包含在User.registerModule
函数
User.registerModule = function () {
function getAllUsers() { ... }
$('#user').click(function () {
Common.showLeftScrollbar();
getAllUsers();
// ...
});
}
答案 1 :(得分:1)
将此功能放在范围内:
User.registerModule = function () {
function getAllUsers(){ // how to hide this function
// get
return users;
}
$('#user').click(function () {
Common.showLeftScrollbar();
getAllUsers(); // returns users
// ...
});
}
它将是私人。
现在,如果你试图在外面调用这个函数,它将是undefined
:
getAllUsers(); // undefined.