JavaScript 如何创建私有变量
在本文中,我们将尝试了解如何在JavaScript中创建私有变量。首先让我们了解一下在JavaScript中一般可以通过哪些方式声明变量。
语法: 通过以下语法,我们可以在JavaScript中声明变量。
var variable_name = value
此外,我们还可以使用“let”关键字来进行变量声明。
let variable_name = value
现在,我们对如何声明变量有了一个基本的了解,让我们看看如何使它们变成私有的,即使这些变量无法直接访问。
在函数中创建私有变量: 每当我们处理函数时,我们总是尝试使变量变成私有的,这样有助于不直接访问变量,避免进一步更新这些值。
示例: 代码的实现最终将帮助我们理解如何构建私有变量和函数:
Javascript
<script>
function carDetails() {
let kms = 0;
let speed = 0;
let speedUp = (intialSpeed) => {
speed += intialSpeed;
kms += speed;
};
let totalkmsDriven = () => kms;
return { speedUp, totalkmsDriven };
}
let car_object = carDetails();
car_object.speedUp(7);
car_object.speedUp(9);
console.log(car_object.totalkmsDriven());
// Undefined, since it is made private:
console.log(car_object.kms);
</script>
输出:
23
undefined
在上面的代码片段中声明的所有变量都无法直接访问,因为它们被封装在这样一种方式中,即在没有函数调用访问的情况下,无法使用或打印这些变量携带的值。
或者,我们还可以使用“this”关键字使方法(函数)调用保持与主方法本身的一致,从而使变量为私有。使用“this”关键字的主要思想是使方法直接可见,即使方法可以直接访问。以下是更好理解的代码片段:
Javascript
<script>
function carDetails() {
let kms = 0;
let speed = 0;
this.speedUp = (intialSpeed) => {
speed += intialSpeed;
kms += speed;
};
this.totalkmsDriven = () => kms;
}
let car_object = new carDetails();
car_object.speedUp(7);
car_object.speedUp(9);
console.log(car_object.totalkmsDriven());
// Undefined, since it is made private:
console.log(car_object.kms);
</script>
输出:
23
undefined
在类中创建私有变量: 在ES6中,我们有一个类的设施,也用于在用户的控制台上显示某些输出。在声明类时,我们还使用构造函数,它仅仅是在调用某些变量或方法后接受特定参数的默认函数。
为了演示变量的私密性,我们将把所有的东西放在构造函数中,然后通过某些方法来访问它们(可以称为封装,通过方法访问变量)。
以下是演示上述事实的代码片段:
Javascript
<script>
class carDetails {
constructor() {
let kms = 0;
let speed = 0;
this.speedUp = (initialSpeed) => {
speed += initialSpeed;
kms += speed;
};
this.totalkmsDriven = () => kms;
}
}
let car_object = new carDetails();
car_object.speedUp(12);
car_object.speedUp(13);
console.log(car_object.totalkmsDriven());.
// Undefined...since it is made private:
console.log(car_object.speed);
</script>
输出:
37
undefined
极客教程