伙计们,我遇到了一件简单的事情:我知道实现我的 JavaScript“程序”的两种方法,但有一个问题。想象一下,我们有一个对象的构造函数,例如:
function Map () {
//and this object has some properties
this.foo = 'bar';
};
现在我们创建这个对象的一个实例:
var myMap = new Map ();
我需要实现一个程序,为这个“地图”绘制一个新的矢量图层,它应该使用属性 'foo'。我可以做到,将其实现为“地图”方法,例如:
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?
};
我哪里错了?如何为“图层”对象定义构造函数,该对象应该是“地图”对象的属性并使用“地图”属性?