Последние пару недель я занимался разработкой 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 для меня не сработает, потому что мне нужно иметь отдельные экземпляры рассматриваемого класса.
Кроме того, мне не очень удается заставить завершение кода работать с файлами. Например, если у меня есть 3 файла в каталоге javascript, я обычно не могу заставить Aptana подобрать разметку стиля JSON в двух других классах. Этот DID работает в один момент (для первых 2 классов, которые я создал), но с тех пор, когда я добавляю новые классы, они не выбираются.
Большое спасибо за вашу помощь.
Джереми
Я определил, что следующие работы:
/**
* 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?