我是JavaScript的新手,我有两个问题。
1(我想知道如何保护JavaScript中的变量。
在Java中,有访问修饰符(如公共,私有,默认,受保护(。然而,据我所知,JavaScript没有。以下是JS文件(假设JS文件与HTML文件相关联(:
var my_purse = 10000; // suppose this value from HTMLElement
var my_bank_account = 10000;
function save_money(money) { // skip exception processing
my_purse = my_purse - money;
my_bank_account = my_bank_account + money;
}
function withdraw_money(money) {
my_bank_account = my_bank_account - money;
my_purse = my_purse + money;
}
我认为可以从外部更改这些变量(my_purse
,my_bank_account
(。那么,如何保护这些变量呢?
除此之外,如果我使用对象(如下所示(声明变量,是否有(缺点(优势?
var money = {
my_purse: 10000;
my_bank_account: 10000;
}
2(应该避免函数之间的依赖关系吗?
例如,假设上面的代码添加到opening an account
的过程。那么以下是可能的。
function save_money(money) { // money == (money1 + money2)
if(first_time) {
open_account(money1);
}
my_purse = my_purse - money2;
my_bank_account = my_bank_account + money2;
}
function open_account(money) { // required money to open an account
my_purse = my_purse - money;
my_bank_account = my_bank_account + money;
}
但是,在这种情况下save_money
函数依赖于open_account
函数。所以我认为它看起来不稳定。这种代码有问题对吗?
感谢您的阅读,尽管我的英语很差。
我能给出的最短答案是,如果您将所有内容包装在"即时调用的函数表达式"或只是一个一般的函数中,则无法访问这些变量; 函数作用域保护变量。
(function () {
// your inaccessible code here
})()
另一个好的指导规则是,如果可能的话,始终使用const
而不是var
,有时您可能会使用let