Javascript 原型(prototype)语法——下划线开头的变量名

标签 javascript prototype

<分区>

我正在学习在线教程并遇到了一些我很难理解的 javascript 代码。在 javascript 中定义了一个名为 Note() 的函数。下面是在原型(prototype)部分添加 getter 和 setter 的代码。不明白为什么变量_id前面有下划线?下划线的用途是什么,何时使用?

Note.prototype = {
    get id() {
        if (!("_id" in this))
            this._id = 0;
        return this._id;
    },

    set id(x) {
        this._id = x;
    },

    get text() {
        return this.editField.innerHTML;
    },

    set text(x) {
        this.editField.innerHTML = x;
    }

最佳答案

我缩小了问题范围并重新发布了这个问题。

事实证明,'name' 和 '_name' 是两个完全独立的变量。如果我们在 setter 和 getter 中使用“名称”,它会导致函数的无限递归调用,这就是它无法正常工作的原因。

您可以在此处找到此问题的转贴以及其他信息。

Javascript getters and setters - recursion issue

关于Javascript 原型(prototype)语法——下划线开头的变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30795413/

相关文章:

javascript - 为表中的每一行循环两个数组

javascript - 输入基于作为参数传递的 JSON 模式的函数

javascript - JQuery 禁用空格键

javascript - 重复 HTTP 请求,直到返回 404 错误

javascript - 在 javascript 中制作原型(prototype)时出现问题

Javascript 分配原型(prototype)困惑

javascript - 使用 Object.defineProperties 定义属性

javascript - 在 JavaScript 实例上编写单个原型(prototype)与使用多个原型(prototype)之间的区别?只是风格?

Javascript 原型(prototype)不会更新方法

javascript - 禁用数据表中的一些单元格 jQuery 的排序