javascript - __defineGetter__ 的完美替代品?

标签 javascript getter-setter

getter 和 setter 是 VB.Net 中的一个美:

Get
    Return width
End Get
Set(ByVal value As Integer)
    width = value
End Set

在 Javascript 中,我们可能会这样做:

function Test() {
    var width = 100;
    this.__defineGetter__("Width", function() {
        return width;
    });
    this.__defineSetter__("Width", function(value){
        width = value;
    });
}

它看起来像一盘被 kuri 洗劫一空的意大利面。我们有哪些更简洁的选择?

注意:新代码应该使用 new Test().Width 而不是 new Test().Width() 访问值。

最佳答案

使用 ES5,您将能够:

function Test() {
  var a = 1;

  return {
    get A() { return a; },
    set A(v) { a = v; }
  };
}

getter/setter 函数当然可以做任何你想让它们做的事。

关于javascript - __defineGetter__ 的完美替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5731454/

相关文章:

php - 如果从数据库端检查的验证是正确的,如何在 PHP 中隐藏表单提交的分区?

javascript - 如何使用 Cypress 测试文件输入?

Javascript点击监听器获取类

python - 为什么在 Python OOP 中使用 Getters/Accessors 是(或不是)好的做法?

php - 记录使用 __call() 的 PHP 类

javascript - 从插件调用驻留在主页中的函数?

私有(private)属性的 Javascript 动态 getter/setter

javascript - 在 JavaScript 对象中实现 setter 和 getter

actionscript-3 - 覆盖继承的 getter/setter

javascript - 在 javascript 中选择正确的形式