初めてオブジェクトリテラルを使用すると、正しく理解できないようです。私が必要とするのは、オブジェクトのスコープを持つプライベート変数なので、オブジェクトリテラルのすべての関数からアクセスできます。私はこれは、すべての罰金ですjavascriptオブジェクトリテラルでset accessを取得
var mapObj = {
init: function (lat, lng, documentID) {
var myOptions = {
center: new google.maps.LatLng(lat, lng),
zoom: 18,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById(documentID),
myOptions);
return map;
},
setMarker: function (lat, lng, map, contentObj) {
var myLatlng = new google.maps.LatLng(lat, lng);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: "Hello World!",
content: contentObj
});
}
};
マップ・オブジェクトのリテラル単純なオブジェクトを持って
、と私はmapObj.initとしてそれを使用して取得(....):ここで
が問題ですmapObj.setMarker(...)は完璧に動作します。私ができるようにしたいのは、init()メソッドに 'map'のような変数値の一部を保存し、他のメソッドでアクセスできるようにすることです。例えば、 mapObjはinitメソッドの後に内部的にマップを保持する必要があるため、setMarkerに 'map'を渡す必要はありません。
同様に、私はmapObj.getMap()を使ってinitで作成されたマップオブジェクトにアクセスしたいと思っています。
どのように動作するのかわかりません。 varmapを宣言すると、エラーがスローされます。たとえば、
var mapObj {
var map
}
などがあります。
私はC#のように動作することを期待していますか?私は、古典的なjavascriptの 'クラス'の構造を使用する必要がありますか?私は上に移動することができますので、任意のポインタが役立ちます。
おかげ
美しい!どうもありがとう。まだjavascriptのobject/function/literal/scope intricaciesに慣れています。しかし、これはまさに私が望んでいた通りです。 – Gerry