«namespaces» で編成された一連の JavaScript «modules» があります — グローバル オブジェクト (ウィンドウ) をルートとするオブジェクト階層です。
ユーティリティを使用する場合もありますがcreateNs("namespace.name")
(これは YUI とまったく同じように機能しますYAHOO.namespace
)、IntelliSense はありません。ReSharper もそのような問題を解決できません。
今のところ、IntelliSense を機能させる唯一の方法は、次のような非常に面倒なことを書くことです。
// module with no dependencies:
(function (window) {
var ourCompany = window.ourCompany || (window.ourCompany = {});
var components = ourCompany.components || (ourCompany.components = {});
var emails = components.emails || (components.emails = {});
emails.inbox = {
checkNew: function () { }
};
})(window);
// consumer:
(function (window) {
window.ourCompany.components.emails.inbox.checkNew();
})(window);
別のオプションはjQuery.extend
、常に利用できるとは限らない方法を使用することです。
// depends on jquery:
(function (window, $) {
$.extend(true, window, {
ourCompany: {
components: {
emails: {
inbox: {
checkNew: function () { }
}
}
}
}
});
})(window, jQuery);
共通点の解決策は何ですか?
書く量を減らし、
インテリセンスを持っている、
ReSharper のリファクタリングがあり、
サードパーティの依存関係はありません。
出来ますか?
ありがとう!