2014-09-05 3 views
-1

Я развиваю портал Openui5. У моего портала есть 2 приложения. Я Я организовал код в папках:Как загружается функция с таким же именем

root 
    | 
    |____app1 
    |____app2 

В app1 папке у меня есть util1.js с функцией GetInfo() и в app2 FOLTER У меня есть util2.js с функцией GetInfo() (то же имя).

Теперь мой портал, на корневом входе, загружать все Js файлы во всех вложенных папках, и только последний загруженный GetInfo() функция работы (правильно ???)

Я думаю, что в будущем, чтобы динамически нагрузить JS файл appX, только когда пользователь вводит в appX. Таким образом, он работает правильно?

+0

Таким образом, вы перезапись JS функции. В чем вопрос снова? – Justinas

ответ

2

Не делайте свои getInfo функциями глобальными. (Это будет хороший совет, даже если вы только имели один из них, глобальное пространство имен очень многолюдно.)

Вместо этого в идеале иметь один глобальный для приложений вашего портала, возможно, под названием Apps, который является объектом , Затем каждое приложение добавляет себя к этому объекту как свойство, используя имя приложения. Итак:

portal.js:

var Apps = {}; 

app1.js:

Apps.App1 = { 
    getInfo: function() { 
     // ... 
    }, 
    somethingElse: function() { 
     // ... 
    } 
    // ...and so on... 
}; 

app2.js:

Apps.App2 = { 
    getInfo: function() { 
     // ... 
    }, 
    somethingElse: function() { 
     // ... 
    } 
    // ...and so on... 
}; 

Или вы могли бы пойти дальше и иметь регистрационный приложение функции:

portal.js:

var MyPortal = { 
    apps:  {}, 
    register: function(name, app) { 
     if (this.apps.hasOwnProperty(name)) { 
      throw new Error("There is already an app called '" + name + "' registered."); 
     } 
     this.apps[name] = app; 
    } 
}; 

app1.js:

MyPortal.register("App1", { 
    getInfo: function() { 
     // ... 
    }, 
    somethingElse: function() { 
     // ... 
    } 
    // ...and so on... 
}); 

app2.js:

MyPortal.registerApp("App2", { 
    getInfo: function() { 
     // ... 
    }, 
    somethingElse: function() { 
     // ... 
    } 
    // ...and so on... 
}); 
Смежные вопросы