JavaScriptオブジェクトリテラルでセットアクセスを取得します -- javascript フィールド と jquery フィールド 関連 問題

get set access in javascript object literals












0
vote

問題

日本語

オブジェクトリテラルを初めて使用し、それは私がそれらを正しく理解していないようです。私が必要なのは、オブジェクトの範囲を持つプライベート変数、したがってオブジェクトリテラル内のすべての関数にアクセスしやすいです。

これは問題です:

マップオブジェクトのための単純なオブジェクトリテラルを持っています

<事前> <コード> addPlot2

これはすべて問題ありません、そして私はそれを完全に機能するmapobj.init(...)とmapobj.setMarker(...)として使用するようになります。

私がすることができることは、init()メソッドの 'map'のような 'map'のようなものを保存してから、他のメソッドのためにアクセス可能なものに保存されます。例えば。 MAPOBJがINITメソッドの後にマップを内部的に保持する必要があるため、SetMarkerで 'map'を渡す必要はありません。

同様に、initで作成されたマップオブジェクトにアクセスするためにmapobj.getmap()を行うことができたいです。

それがどのように機能するかを理解することができません。 VARマップを

として宣言します <事前> <コード> addPlot3

はエラーをスローします。

これがC#のように機能するようになることを期待していますか? Classic JavaScriptの「クラス」構造を使用する必要がありますか?どんなポインタでも私が進むことができるように役立ちます。

ありがとう

英語

Using object literals for the first time and it seems I don't quite understand them right. What I need is private variables with the scope of the object and therefore accessible to all functions in the object literal.

Here's the issue:

I have a simple object literal for a map object

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         });     } }; 

This is all fine, and I get to use it as mapObj.init(....) and mapObj.setMarker(...) which work perfectly.

What I want to be able to do is store some of these variable values - like 'map' in the init() method, and then have it accessible for other methods. For e.g. I should not need to pass 'map' in the setMarker, as the mapObj should hold the map internally after the init method.

Similarly I'd like to be able to do mapObj.getMap() to access the map object created in init.

I'm unable to figure out how it works. Declaring var map as

var mapObj {    var map } 

for e.g throws errors.

Am I expecting this to work too much like C#? Should I be using the classic javascript 'class' constructions? Any pointers will help so I can move on.

Thanks

</div
     

回答リスト

2
 
vote
vote
ベストアンサー
 

そのような関数でそれを包み込む:

<事前> <コード> tsconfig.json8

tsconfig.json9 はその関数内でのみ利用可能です(そしてそれが含むすべての関数)。 <コード> src/types0 は外部に入手可能です。

 

Just wrap it in a function like so:

var mapObj; !function() {      var map;      mapObj = {          init: function (lat, lng, documentID) {             var myOptions = {                 center: new google.maps.LatLng(lat, lng),                 zoom: 18,                 mapTypeId: google.maps.MapTypeId.ROADMAP             };             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             });         }     }; }(); 

Now map is only available inside that function (and all functions it contains). mapObj is available outside.

</div
 
 
 
 
0
 
vote

でのレポート作成 <事前> <コード> src/types1

公開内部のすべてが外で利用可能で、他のすべてがプライベートで、共有されています。

 

Closures reporting in

var mapObj = (function() {      var map; //This is private      var publics = {         init: function(lat, lng, documentID) {             var myOptions = {                 center: new google.maps.LatLng(lat, lng),                 zoom: 18,                 mapTypeId: google.maps.MapTypeId.ROADMAP             };             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             });         }     };     return publics;  })(window); 

Everything inside publics is available outside, everything else is private, and shared.

</div
 
 

関連する質問

2  OnClick HandlerをMake Linksのクリックを無視します  ( Make onclick handler ignore clicks on links ) 
ブロック要素のカスタムオンクロックハンドラ(jQueryの.click()メソッドを介して設定)。このブロック要素にはリンクを含めることができます。 これはかなり確信があるので、クリックしたリンクである場合(リンクが私のコードを実行せずに訪問されるように)ハン...

210  jQueryセレクタから$(これを)除外する方法は?  ( How can i exclude this from a jquery selector ) 
私はこのようなものを持っています: <事前> <コード> <div class="content"> <a href="#">A</a> </div> <div class="content"> <a href="#">B</a> </div>...

0  リスト項目でディスクを取り除く  ( Getting rid of disc in list item ) 
jQueryを使用してサイトを開発し、jQuery UIタブを作成しています。何らかの理由で、私のタブ(順序付けられていないリスト)は、OS XのFirefox 3を除くすべてのブラウザ(これまでにテスト済み)に弾丸を表示しています.Safari OS X、...

0  jQueryの$ .click()内のインデックス番号を取得する方法  ( How to get index number inside click of jquery ) 
<事前> <コード> $("span.ws_label").click(function() { }) セレクタ「span.ws_label」選択した5つの要素、 そのうちの1つをクリックしたとき、 実際にどれを知るか? 編集 I索引やそのIDを...

0  jQuery、属性フィルタセレクタ、および正確に_which_要素をクリックした  ( Jquery attribute filter selectors and finding out exactly which element was c ) 
私はこのjqueryがうまく機能する <事前> <コード> $("li[id^='shop_id']").click( function () { alert("I clicked on id ??"); }); 'shop_id'でIDを持つ...

1  $$ jQueryでは、これは何ですか?  ( In jquery whats this used for ) 
誰かが書くだけの場合: <事前> <コード> $("#downloadTabs>div").each(function(el) { el.setStyle("display", "none"); el.removeCla...

1279  jQueryでクッキーを設定/設定解除するにはどうすればよいですか。  ( How do i set unset a cookie with jquery ) 
jQueryを使用してCookieを設定して設定します。たとえば、 test という名前のクッキーを作成し、 1 ?に設定します。 ...

1  JsonResultの問題  ( Jsonresult problem ) 
これを返しているActionResultがあります。 <事前> <コード> @output4 JavaScriptでは、そのaticationResultによって返される値は "{" isDeleted ":true}"です。 私は何をしていますか? 編...

11  スライド後のjQueryスライダコール機能  ( Jquery slider call function after slide ) 
私はWebアプリケーション上でスコアを設定するために使用しているjQuery Silderを持っています。ユーザーが送信ボタンをクリックしたが、クライアントはAjaxスタイルを更新するようになったままにするようにOrignallyにいました。 これは見つけられ...

2  jQueryのAjaxForm  ( Ajaxform in jquery ) 
Ajaxformを使用しています。今私は問題に遭遇しました。私のアイデアは、ユーザーがユーザー名を入力したときに、誤ったユーザー名がユーザーにメッセージを報告する必要があります。 私のコードはうまくいっていますが、ユーザーに表示されたレポートメッセージの後、...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有