オブジェクトが定義された後にのみ関数を実行できるようにする必要があります。現在、fascade パターンで作業しており、1 つのメソッドが別のメソッドに依存しています。この場合、「setFullMap」の実行が完了していないため、「addNewLayer」は失敗します。解決策はありますか?私はjqueryとvanilla jsを使用しているので、この時点でほとんどのソリューションが役に立ちます:
var jen = (function(){
function setFullMap(mapID){
jen.map = new Map(mapID);
}
function setLayer(opt){
//execute code here after jen.map is defined
}
return{
samp: function(id, opt){
setFullMap(id);
addNewLayer(opt);
}
};
})();
ありがとう
解決:
var jen = (function(){
function setFullMap(mapID, callback) {
jen.map = new Map(mapID);
if(jen.map){
callback();
}
}
return {
samp: function(id, opt){
setFullMap(id, function(){
addNewLayer(opt);
}.bind(this));
}
};
})();