男性、私は 1 つの簡単なことで立ち往生しています: JavaScript の「プログラム」を実装する 2 つの方法を知っていますが、1 つの問題があります。たとえば、いくつかのオブジェクトのコンストラクターがあると想像してください。
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?
};
どこが間違っていますか?「マップ」オブジェクトのプロパティである「レイヤー」オブジェクトのコンストラクターを定義し、「マップのプロパティを使用する方法は?」