[英]Code Completion — Aptana Eclipse Plugin
我在过去几周一直在进行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样式标记。 这个DID在某一点上工作(对于我创建的前两个类),但从那时起,每当我添加新类时,它们都不会被拾取。
非常感谢你的帮助。
杰里米
我已经确定以下工作:
/**
* 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中的有效类吗?
希望我能帮助回答有关Aptana代码完成行为的所有问题。 为了鼓励Aptana的代码完成合作,我一直在使用这种方法:
var foo = function(){
}
foo.prototype.a = "a"
foo.prototype.b = function(){ alert(this.a) }
你说
此外,我不是很成功地使代码完成跨文件工作。
但到目前为止我好运。 但是,我发现如果我有f = new foo()但将其更改为f = new bar(),代码完成会显示普通ol'对象的属性,而不是foo或bar。 重命名变量(b =来自f = new foo()的新条形码())或重新启动编辑器似乎有所帮助。
任何想法有什么区别? 第二个是javascript中的有效类吗?
关于“new function()”, 在JavaScript中使用小写“f”的`new function()` ,类似于
var foo = new function(){ ... }
代替
var foo = { ... } // JSON style
要么
var foo = function(){ ... }
是实现属性私有访问的变通方法的一部分。 请记住,JS中没有“类”,而是对象。 一切都是对象。
有谁知道为什么Aptana适用于最后[JSON]风格,但不是第一个?
JSON样式声明实际上创建了一个名为foo的Object实例,因此Aptana没有问题查找它。 正如您所提到的,使用函数允许单独的实例,但Aptana似乎不会跟踪在找到原型之前声明为函数的事物的属性。 我的理由是,原型触发Aptana的代码完成,因为自定义对象的每个实例都将指定所有属性。 如果没有原型,必须为每个实例重新定义属性(通常在构造函数中完成,但是在我最顶层的代码块中注意我的构造函数是空的,因为我使用prototype来定义自定义对象)。 这个链接在这方面解释了有关原型的更多信息http://www.phpied.com/3-ways-to-define-a-javascript-class/
Aptana中的默认JavaScript编辑器是什么(在Windows>首选项>文件关联> * .js下)? 我使用Aptana JS编辑器而不是JavaScript编辑器(默认安装)。 请注意,每个项目的这些设置可能不同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.