如何很好地声明变量和函数



我是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_pursemy_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

最新更新