Я пишу функцию в JS, но у меня есть проблема с переменным маркером.JavaScript scoping не присваивает переменную
Код:
function piano(numero, link) {
var marker;
this.marker = marker;
var immagine = loadImage(link, marker);
this.immagine = immagine
function createMarker() {
return new RichMarker({
....
});
}
function loadImage(link, marker) {
var immagine = new Image();
immagine.src = link;
immagine.onload = function() {
marker = createMarker();
};
return immagine;
}
....
variabile Immagine инициализируется вызовом функции LoadImage для загрузки изображения.
В этой функции это код:
immagine.onload = function() {
marker = createMarker();
};
, которые должны сделать назначение маркеров после загрузки изображения.
Когда я пытаюсь получить доступ к маркерам, после загрузки изображения, это всегда приводит к неопределенным; и я точно знаю, что был создан RichMarker.
Я не понимаю, почему это происходит.
JavaScript переменные будут хранить ссылку на объект, но вы не можете поделиться ссылкой сказать ' Number' или 'String' или' undefined'. Если маркер - это что-то вроде массива или объекта, то «marker» и «this.marker» не будут тем же самым объектом при его изменении позже (что не определено, поэтому то, что вы делаете, не будет работать). – Chad