function Map () {
//and this object has some properties
this.foo = 'bar';
};
现在我们创建一个这个对象的实例:
var myMap = new Map ();
我需要实现一个为这个'Map'绘制一个新的矢量图层的程序,而应该使用属性'foo'。我可以这样做,将其实现为“Map”方法,例如:
Map.prototype.layer = function () {
...;//some uninteresting code
this.foo += 'bar';
};
'this.foo'在这个上下文中意味着Map.foo,我需要,好吧,现在我可以写了
MyMap.layer ();//and this will draw my layer
但是,如果实现它不像方法,但是像创建新层实例的构造函数那样呢?我们可以这样使用的东西:
var myLayer = new myMap.Layer ();
我应该如何为它编写构造函数?像
Map.prototype.Layer = function () {
//and how to access Map.foo now?
//if i write 'this.foo' here
//and then call this constructor like i wrote above
//it will mean 'Map.Layer.foo', isn't it?
};
我哪里错了?如何定义'Layer'对象的构造函数,该对象应该是'Map'对象的属性并使用'Map的属性?