RequireJS и Dependency Injection (DI)
Это реализация AMD (Asynchronous Module Definition), API для объявления модулей и их асинхронной загрузки «на лету», когда они понадобятся.
Типичный случай
define(["jquery", "blade/object"], function ($, object) { // ... });
define(["jquery", "blade/object", "blade/fn", "rdapi", "oauth", "blade/jig" ], function ($, object, fn, rdapi, oauth, jig) { // ... });
define(["jquery", "blade/object", "blade/fn", "rdapi", "oauth", "blade/jig", "blade/url", "dispatch", "accounts", "storage", "services", "widgets/AccountPanel", "widgets/TabButton", "widgets/AddAccount", "less", "osTheme", "jquery-ui-1.8.7.min", "jquery.textOverflow" ], function ($, object, fn, rdapi, oauth, jig, url, dispatch, accounts, storage, services, AccountPanel, TabButton, AddAccount, less, osTheme) { // ... });
define(function (require) { var $ = require("jquery"); var object = require("blade/object"); var fn = require("blade/fn"); var rdapi = require("rdapi"); // .. });
define(function ( #! /*jquery=*/$, #! /*blade*/object, #! /*blade*/fn, #!+ // .. #!- /*jquery-ui-1.8.7.min*/ ) { // ... });