Ich bin neu in Javascript und Modulmuster. Also versuche ich, die folgende kleine BibliothekVariable im Modulmuster nicht zugewiesen Ausgabe
(function(window, $){
'use strict';
function myLibrary(){
var myLib = {};
var options= {};
var map;
//_options = {'map':ol.map, 'geojson': testdata}
myLib.init = function init(_options){
options = _options;
map = _options.map;
console.log("Initializing ...");
console.log("map : "+ map);
console.log("options : "+ options);
}
myLib.map = map;
myLib.options = options;
return myLib;
}
if(typeof (window.testLib) === 'undefined'){
window.testLib = myLibrary();
}
})(window, $);
ich erste Aufruf init-Funktion mit den folgenden Parametern zu schreiben:
testLib.init({'map':ol.map, 'geojson': testdata})
Das Problem kommen, wenn ich die Karte und die Möglichkeit, den Zugriff versuchen
testLib.map // return undefined instead of the map object
testLib.options // reutrn {} instead of {'map':ol.map, 'geojson': testdata}
Ich habe die Zuordnung in init, aber es scheint nicht zu funktionieren. die in init() für map und options vorgenommene Zuordnung scheint lokal zu sein für die init()
Wie kann ich die Zuordnung die Karte und Optionen, die ich deklariere mit Var ??
Vielen Dank für Hilfe
EDIT: korrekte Satz sollte lauten: „Ich init-Funktion mit den folgenden Parametern aufrufen zuerst:“
der erste Aufruf der init-Funktion ist mit dem Parameter im Aufruf gezeigt, ich nenne es nicht mit leeren Parametern. – curvenut
Ich habe Ihre Antwort mehrere Male gelesen, und nur feststellen, dass die Deklaration einer Variablen mit 'var' eine private Variable im Rahmen der Funktion erstellen. – curvenut
Ich kann die Eigenschaft Getter nicht verwenden, da ich die Selbstaufruffunktion und eine Funktion verwende. Der Getter wird nur im Objekt litteral verwendet. – curvenut