javascript - 如何在构造函数中设置javascript私有(private)变量?

标签 javascript oop scope

假设我有一个名为 Foo 的 JavaScript 函数/类它有一个名为 bar 的属性.我想要 bar 的值在实例化类时提供,例如:

var myFoo = new Foo(5);

将设置 myFoo.bar到 5。

如果我制作 bar一个公共(public)变量,然后这个工作,例如:
function Foo(bar)
{
    this.bar = bar;
}

但是,如果我想将其设为私有(private),例如:
function Foo(bar)
{
   var bar;
}

那我该如何设置私有(private)变量bar的值?使其可用于 foo 的所有内部功能?

最佳答案

关于 javascript 中的私有(private)和 protected 访问的最佳教程之一在这里:http://javascript.crockford.com/private.html .

function Foo(a) {
    var bar = a;                              // private instance data

    this.getBar = function() {return(bar);}   // methods with access to private variable
    this.setBar = function(a) {bar = a;}
}

var x = new Foo(3);
var y = x.getBar();   // 3
x.setBar(12);
var z = x.bar;        // not allowed (x has no public property named "bar")

关于javascript - 如何在构造函数中设置javascript私有(private)变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6799103/

相关文章:

php - 在这种情况下是使用接口(interface)还是抽象类更好?

javascript - 向我的数组追加一个元素?

javascript - 正则表达式,匹配除双星号之外的所有内容

javascript - 在javascript中从其他对象递归创建嵌套对象

Javascript OOP : binding method to event handler

php - 创建相互依赖的对象

javascript - JavaScript 变量的范围在此脚本中如何工作?

循环中的 Python import 语句 : does import run every loop iteration?

javascript - 如何根据特定的 JSON 对象值对数组进行计数?

javascript - 通过 AJAX 阅读后显示视频 blob