【发布时间】:2012-12-06 11:24:00
【问题描述】:
我们有一组 javascript «modules» 组织在 «namespaces» — 根植于全局对象(窗口)的对象层次结构。
在某些情况下,我们使用实用程序 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 的重构,
没有第三方依赖。
有可能吗?
谢谢!
【问题讨论】:
标签: javascript namespaces resharper intellisense