我有一个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
答案 0 :(得分:0)
听起来有点像使用构造函数。本章描述了类似的情况,但用兔子而不是笔:http://eloquentjavascript.net/06_object.html#constructors。
笔将是构造函数:
function Pen(nib) {
// shared scope
this.nib = nib;
}
然后你可以创建
var bluePen = new Pen(blue)
...虽然我猜它略有不同,因为你描述的是一支笔,而且使用构造函数你最终会得到多个实例。