需要集思广益。我对 Javascript 库(jQuery、ExtJS 等)有疑问,这些库似乎与 Visual Studio 2008 中内置的 Javascript Intellisense 不能很好地配合。它们提供了 Intellisense 无法理解的某些实用帮助程序函数。
IE。 ExtJS代码
// convenience function to create namespace object placeholders
Ext.namespace("Root.Sub.Subsub");
或 jQuery
// doing the same thing in jQuery
$.extend(window, {
Root: {
Sub: {
Subsub: {}
}
},
});
甚至(我可怜你应该维护这个代码)
$.extend(window, { Root: {}});
$.extend(Root, { Sub: {}});
$.extend(Root.Sub, { Subsub: {}});
这些调用的最终结果基本相同。他们中没有一个人会做出Root
Javascript Intellisense 可见的命名空间在 Visual Studio 2008 中。如果我们知道智能感知在幕后是如何工作的,我们也许能够克服这种情况。
是否有可能convince智能感知显示/识别这些名称空间,无需直接编写对象,例如:
Root = {
Sub: {
Subsub: {}
}
};
我承认第一个 jQuery 调用与此非常相似,但最好使用扩展功能来防止删除/覆盖现有功能/命名空间。
Question
我们应该如何使用这些实用函数来使 Intellisense 工作?
欢迎任何能够阐明这一点的头脑风暴答案吗?
Edit
我发现,如果使用实用程序函数创建的命名空间是在外部定义的(即在不同的脚本文件中),并且您引用该文件,则会显示它们,例如:
/// <reference path="different.script.file.js" />
在这种情况下一切都很好。但是,如果您在同一文件中调用实用程序函数,它们不会列在智能感知下拉列表中。