[英]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.