带有可替换笔尖的JavaScript笔对象

时间:2017-07-07 18:37:37

标签: javascript object

我有一个JavaScript问题。想象一下虚拟笔。笔可以有许多不同的可能笔尖,尽管笔只能有一个笔尖。我想创建一个笔对象,然后为它指定一个笔尖。 nib需要访问笔的属性和方法。

这可能是众所周知的设计模式。这种设计模式的名称是什么?

function Pen() {
  var p1=5;
  this.nib=null;
}

function Nib1() {
  // needs access to p1.
}

function Nib2() {
  // needs access to p1.
}

var p = new Pen();
var n1 = new Nib1();
p.nib = n1;
// n1 needs access to p1

1 个答案:

答案 0 :(得分:0)

听起来有点像使用构造函数。本章描述了类似的情况,但用兔子而不是笔:http://eloquentjavascript.net/06_object.html#constructors

笔将是构造函数:

function Pen(nib) {
  // shared scope
  this.nib = nib;
}

然后你可以创建

var bluePen = new Pen(blue)

...虽然我猜它略有不同,因为你描述的是一支笔,而且使用构造函数你最终会得到多个实例。