JavaScript 如何创建私有变量

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程