我最近几周一直在进行JavaScript开发,并尝试使用JSDT和Aptana来辅助代码完成。 JSDT的效果并不好,但我在Aptana上(作为Eclipse插件而非独立产品)运气更好。 我遇到的问题是,当我创建JavaScript类时,无法使代码完成工作。 例如,如果我使用以下内容,则代码完成不起作用:
var foo = new function(value){
this.myMethod= function(){
}
}
我也验证了以下内容无法正常工作:
function foo(value){
this.myMethod= function(){
}
}
我发现使用JSON格式确实有效:
var foo = {
myMethod: function(){
}
}
有人知道为什么Aptana适用于最后一种样式,但不适用于第一种吗?使用JSON样式对我来说行不通,因为我必须有该类的单独实例。
另外,我在跨文件中让代码完成工作方面并不十分成功。例如,如果我在javascript目录中有3个文件,则通常无法使Aptana获取其他两个类中的JSON样式标记。这曾经起作用过(对于我创建的前两个类),但自那以后,每当我添加新类时,它们就不会被捕获。
非常感谢您的帮助。
Jeremy
我已确定以下内容可行:
/**
* The foo function
*/
function foo() {
}
/**
* The bar function
* @param {Object} a Object a
* @param {Object} b Object b
*/
function bar(a, b){
};
foo.prototype.b = bar;
var x = new foo();
x.b
在上面的例子中,关键在于使用原型注册方法。我还尝试了以下方法,但没有成功。
/**
* The foo function
*/
var foo = new function() {
}
/**
* The bar function
* @param {Object} a Object a
* @param {Object} b Object b
*/
function bar(a, b){
};
foo.prototype.b = bar;
var x = new foo();
x.b
有什么区别吗?第二个是javascript中的有效类吗?