编写对代码完成和代码检查友好的Javascript库
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了编写对代码完成和代码检查友好的Javascript库,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1997字,纯文字阅读大概需要3分钟。
内容图文
![编写对代码完成和代码检查友好的Javascript库](/upload/InfoBanner/zyjiaocheng/688/84e414eaa02b412ca9eea7f918103063.jpg)
我最近制作了自己的Javascript库,最初使用了以下模式:
var myLibrary = (function () {
var someProp = "...";
function someFunc() {
...
}
function someFunc2() {
...
}
return {
func: someFunc,
fun2: someFunc2,
prop: someProp;
}
}());
问题是我不能真正使用代码完成功能,因为IDE不知道函数文字将返回的属性(顺便说一句,我正在使用IntelliJ IDEA 9).
我查看了jQuery代码并尝试执行以下操作:
(function(window, undefined) {
var myLibrary = (function () {
var someProp = "...";
function someFunc() {
...
}
function someFunc2() {
...
}
return {
func: someFunc,
fun2: someFunc2,
prop: someProp;
}
}());
window.myLibrary = myLibrary;
}(window));
我尝试过,但是现在我遇到了另一个问题. IDE也不是完全可以使用myLibrary.
我现在解决问题的方式是这样的:
var myLibrary = {
func: function() { },
func2: function() { },
prop: ""
};
myLibrary = (function () {
var someProp = "...";
function someFunc() {
...
}
function someFunc2() {
...
}
return {
func: someFunc,
fun2: someFunc2,
prop: someProp;
}
}());
但这似乎有些笨拙,而且我无法确切弄清楚jQuery是如何做到的.我还有一个问题是如何使用任意数量的参数处理函数.
例如,jQuery.bind可以使用2或3个参数,并且IDE似乎没有抱怨.我试图对我的库做同样的事情,其中??一个函数可以接受0个参数或1个参数.但是,IDE会抱怨并警告未发送正确数量的参数.我该如何处理?
编辑
我开始怀疑这是否是Idea9问题,因为jQuery也有同样的问题.我似乎在其他项目中没有这个问题.
解决方法:
我正在将IDEA与yahoo模块模式一起使用,并且可以完成自动完成功能. Google for yahoo模块模式.
http://www.yuiblog.com/blog/2007/06/12/module-pattern/
http://ajaxian.com/archives/a-javascript-module-pattern
TEST = function() {
var SOME_CONSTANT='asd';
function privateStuff(){
var a = 'asd';
return a;
}
return{
someArray:[],
someMethod: function(foo, bar){
var foo = *1
}
,
myProperty:'test'
}
}();
TEST.*2
用* 1和* 2标记了我尝试自动完成的地方.
在* 1中,我得到了SOME_CONSTANT和privateStuff方法,如果我输入了它.(自动完成)我可以访问return {}块内的所有方法和属性.
当我在* 2上尝试自动完成时,我在return {}块中获取了所有方法和属性.
SOME_CONSTANT和privateStuff方法在那里不可见,因为它们是“私有”的.
对我来说,自动完成水平是相当不错的.
内容总结
以上是互联网集市为您收集整理的编写对代码完成和代码检查友好的Javascript库全部内容,希望文章能够帮你解决编写对代码完成和代码检查友好的Javascript库所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。