美文网首页
私有属性与方法

私有属性与方法

作者: SingleDiego | 来源:发表于2019-05-23 15:28 被阅读0次

我们定义一个圆形(circle)的构造函数:

function Circle(radius) {
  this.radius = radius;

  this.dafaultLocation = {x: 0, y: 0};

  this.computeOptimumLocation = function(factor) {
    // 忽略具体实现
  };

  this.draw = function() {
    this.computeOptimumLocation(10);
    console.log('draw');
  };
};

const circle = new Circle(1);
circle.draw();

看起来没什么特别,但这有一个问题,dafaultLocation 属性和 computeOptimumLocation 方法都能直接被访问和修改,比如这样:

circle.dafaultLocation = true;

这显然是会造成对象的混乱,circle 对象我们需要暴露出来的接口只有 radiuscircle。对于需要私有的属性我们不把它绑定到 this 上。

function Circle(radius) {
  this.radius = radius;

  let dafaultLocation = {x: 0, y: 0};

  let computeOptimumLocation = function(factor) {
    // 忽略具体实现
  };

  this.draw = function() {
    computeOptimumLocation(10);
    console.log('draw');
  };
};

相关文章

网友评论

      本文标题:私有属性与方法

      本文链接:https://www.haomeiwen.com/subject/zazvzqtx.html