JavaScript中属性和方法名的下划线前缀

在JavaScript编程中,你可能会遇到一些以下划线为前缀的属性和方法名。这个习惯是源自于早期JavaScript编程的一些约定,虽然在现代开发中已经不再普遍使用,但是了解其背后的原因仍然有助于提高代码的可读性和维护性。

下划线前缀的含义

在JavaScript的早期版本中,开发者们发现内置的对象和它们的方法命名容易发生冲突,导致一些奇怪的错误。为了避免这种情况,他们约定使用下划线作为前缀来表示这些属性和方法是私有的,不应该被直接访问或调用。

例如,在一个对象中声明了一个私有方法 _foo

--- -------- - -
  ----- ---------- -
    -- ----------
  --
  ---- ---------- -
    -- ------------
    ------------
  -
--

通过这种方式,外部代码无法直接访问 _foo 方法,而只能通过 bar 方法来调用它。

下划线前缀的问题

虽然这种约定确实可以保护一些私有属性和方法,但是在现代的JavaScript开发中,它并不是一个普遍的做法。事实上,一些主流的JavaScript框架和库都不使用下划线前缀来表示私有属性和方法。

使用下划线前缀存在以下几个问题:

  1. 可读性问题:这种约定并不是标准的JavaScript语言特性,开发者需要花费额外的时间去理解它的含义。
  2. 命名冲突问题:下划线前缀并不能完全避免命名冲突,因为其他开发者可能也会使用相同的命名约定。
  3. 安全性问题:在JavaScript中,所有属性和方法都可以被外部代码访问和修改,即使使用下划线前缀也无法完全保证私有性。

因此,在现代的JavaScript编程中,更好的做法是使用闭包或者ES6中的类来实现真正的私有属性和方法。例如:

----- ------- -
  ------------- - --
  
  --- -------------- -
    ------ -------------------
  -
  
  --- ------------------- -
    ------------------ - ------
  -
  
  ---------------- -
    -- ----------
  -
  
  -------------- -
    -- ---------------
    ----------------------
    --------------------------------
  -
-

在这个例子中,# 符号表示这些属性和方法是私有的,并且只能在类的内部访问。这种方式比使用下划线前缀更加直观和安全。

总结

尽管某些JavaScript开发者仍然使用下划线前缀来表示私有属性和方法,但是它并不是一种普遍的做法。在现代的JavaScript编程中,我们可以使用闭包或者ES6中的类来实现真正的私有性,从而提高代码的可读性、可维护性和安全性。

参考资料:

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/9608


猜你喜欢

  • 在 JavaScript 中的孩子和子节点之间的区别是什么?

    在开发前端应用程序时,DOM(文档对象模型)树结构扮演了一个非常重要的角色。在 DOM 树中,元素分为不同的类型,其中最常见的是“父元素”、“孩子元素”和“子节点”。

    7 年前
  • 变量定义与类型“未定义”

    在前端开发中,我们经常需要使用变量来存储和操作数据。变量是一个用于存储数据的内存空间,它可以保存任何类型的数据,包括字符串、数字、布尔值等等。但是,在JavaScript中,如果变量没有被初始化或者赋...

    7 年前
  • Jasmine JavaScript试验是与平等

    Jasmine 是一个流行的 JavaScript 测试框架,它提供了一种结构化和规范化的方式来编写和运行 JavaScript 测试用例。在本文中,我们将深入了解 Jasmine 的工作原理和使用方...

    7 年前
  • 执行 setInterval 函数没有延迟第一次?

    在前端开发中,我们常常使用 setInterval 函数来定时执行某些操作。但是,在实际应用中,我们会发现第一次调用函数并没有延迟,而是立即执行了。这是为什么呢?这篇文章将深入探讨这个问题,并给出解决...

    7 年前
  • 在文本框中输入用户迫切的 jQuery 事件

    在现代 Web 应用程序中,文本框是最常见的用户交互控件之一。用户可能需要在这些文本框中输入各种信息,例如搜索查询、电子邮件地址、密码等等。当用户输入时,我们通常希望应用程序能够及时响应并根据用户输入...

    7 年前
  • 在JavaScript中传递数组作为函数参数

    在JavaScript中,我们可以使用数组来存储和处理大量数据。但是,在编写函数时,有时需要将数组作为参数传递给函数以进行进一步的处理。本文将介绍如何在JavaScript中传递数组作为函数参数,并提...

    7 年前
  • 如何获得单选按钮的值?

    在前端开发中,单选按钮是非常常见的用户输入控件之一。获取单选按钮的值是处理表单数据的重要一步。本文将介绍如何使用 JavaScript 获取单选按钮的值。 HTML 单选按钮 HTML 中的单选按钮使...

    7 年前
  • 表单必需属性及自定义验证消息

    在前端开发中,表单是一个非常重要的组件。在构建表单时,我们需要考虑用户输入的有效性和合法性。本文将介绍表单中必需的属性以及如何设置自定义验证消息。 表单必需属性 1. action action 属性...

    7 年前
  • 检测HTTP或HTTPS,强制JavaScript中的HTTPS

    在现代网络应用中,保证用户数据安全是至关重要的。其中一个关键方面是确保所有的数据传输都使用安全的 HTTPS 协议。本文将介绍如何检测 HTTP 或 HTTPS 并强制 JavaScript 中使用 ...

    7 年前
  • 检查是否用jQuery选择了选项,如果没有选择默认值

    在前端开发中,我们经常需要使用下拉列表(select)来让用户选择某些选项。但是,有时候用户可能会忘记选择选项,这就需要我们在代码中进行判断并设置默认值。 判断是否选择了选项 使用jQuery来获取选...

    7 年前
  • 如何描述 “JsDoc 对象”的争论?

    简介 在 JavaScript 开发中,JsDoc 是一个被广泛使用的注释标记语言。它可以用于自动生成 API 文档和类型检查等工作。然而,在 JsDoc 使用过程中,关于如何编写有效的文档注释存在一...

    7 年前
  • 从URL获取协议、域和端口

    在前端开发中,我们经常需要从URL中获取协议、域名和端口等信息。这些信息对于构建网络应用非常重要,因此需要深入了解如何从URL中获取它们。 URL的组成部分 一个URL(Uniform Resourc...

    7 年前
  • 通过JavaScript传递引用变量

    在JavaScript中,我们可以使用引用变量来访问对象和数组类型的数据。当我们将引用变量作为参数传递给函数时,实际上是将该引用变量的地址传递给函数。这意味着函数内部可以修改引用变量指向的对象或数组,...

    7 年前
  • JavaScript:如何在特定索引处插入字符串?

    在前端开发中,经常会遇到需要在一个字符串的特定位置插入另一个字符串的情况。JavaScript 提供了多种方法来实现这个功能。 方法一:String.prototype.slice() 可以使用 sl...

    7 年前
  • 为什么我的球消失了?

    在前端开发中,我们经常会遇到一些奇怪的问题。比如,你在写一个简单的小游戏,突然发现你的小球不见了,或者说从页面上消失了。那么,这个问题是如何出现的呢?更重要的是,该如何解决呢? 问题分析 首先,让我们...

    7 年前
  • $(文件)。

    抱歉,我是一名语言模型,无法创建文件。但是,我可以提供前端类技术文章的参考草稿,您可以将其转换为 markdown 格式: 如何在前端中处理文件 在前端开发中,文件处理是一个常见的需求。

    7 年前
  • 发布 JSON 数据

    JSON是一种轻量级数据格式,常用于前后端数据交互。在前端开发过程中,我们经常需要将数据以JSON的形式发布到服务器或从服务器获取JSON数据进行处理。本文将介绍如何在前端中发布JSON数据。

    7 年前
  • stopImmediatePropagation() 方法详解

    在前端开发中,事件冒泡是一个很常见的概念。当一个元素上触发了某个事件(比如点击事件),它会向它的父元素一层层地传递,直到传递到文档根节点。这个过程就叫做事件冒泡。 有时候我们希望阻止事件冒泡,让事件只...

    7 年前
  • 用 JavaScript 实现在网页上模拟震颤效果

    背景 帕金森氏病是一种神经系统退化性疾病,会导致患者出现手抖、肢体僵硬等症状。为了更好地理解和同情患者的感受,我们可以通过在网页上模拟这种震颤效果。 实现思路 我们可以使用 JavaScript 来实...

    7 年前
  • jQuery获取查询URL参数的方法

    在前端开发中,我们经常需要获取页面URL中的查询参数。例如,我们可能需要根据查询参数来呈现不同的内容或执行不同的操作。jQuery是一种流行的JavaScript库,它提供了一个方便的方法来获取查询U...

    7 年前

相关推荐

    暂无文章