Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Что-то с областью видимости (https://javascript.ru/forum/misc/27607-chto-s-oblastyu-vidimosti.html)

Hubet 18.04.2012 20:37

Что-то с областью видимости
 
Здравствуйте, я вообще работаю с PHP, но стала задача написать не небольшое решение на JavaScript с использованием google.maps.Map

Собственно вот в чем вопрос:
как в следующем коде

function MyMarkerSet(){
	this.flag = false;
	this.markers_array = new Array();
	
	this.add_to_map = function (m_address, m_title) {		
		var geocoder = new google.maps.Geocoder();
		geocoder.geocode ( 
			{ 'address': m_address}, function(results, status) {
							if (status == google.maps.GeocoderStatus.OK) {
								map.setCenter(results[0].geometry.location);							
								var marker = new google.maps.Marker({
									map: map,
									position: results[0].geometry.location,
									title: m_title,
									visible: true
								});
								this.markers_array.push(marker);						
							} else {
								//alert("Geocode was not successful for the following reason: " + status);							
							}
			}
		)					
	}
}


Сделать строку "this.markers_array.push(marker);" (строка 17) видимой?
Мне пишет "markers_array is not defined".

Спасибо!

Octane 18.04.2012 20:42

03 >> var markersArray = this.markers_array = new Array();
17 >> markersArray.push(marker);

http://learn.javascript.ru/this

Hubet 18.04.2012 20:45

Спасибо огромное!
А можно небольшое пояснение, для закрепления результата?

Hubet 18.04.2012 20:46

Цитата:

Сообщение от Maxmaxmахimus
http://goo.gl/YvkP1

Спасибо, сейчас почитаю!

Hubet 18.04.2012 20:58

Спасибо за развернутый ответ! Буду учиться!

Kolyaj 18.04.2012 21:12

Цитата:

Сообщение от Maxmaxmахimus
ololo()

то this-ом будет window

если вот так

dfdffd.ololo()
то this-ом будет обьект dfdffd

если вот так

fdsfsdfsf.dfdffd.ololo()
то this-ом будет обьект dfdffd

А если так (dfdf || kjkj).ololo()? :)


Часовой пояс GMT +3, время: 06:03.