Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.01.2011, 09:40
Интересующийся
Отправить личное сообщение для PashaTurok Посмотреть профиль Найти все сообщения от PashaTurok
 
Регистрация: 29.12.2010
Сообщений: 18

Подсказки по объектам в редакторах NetBeans,Aptana и др.
Вопрос по всплывающим подсказкам в редакторах JS.
Есть например два объекта:

var A=
{
temp1:""
}

var B=
{
objectA:A
}

или можно другой вариант

function B()
{
this.objectA=B;
}

вводим код:
B.objectA. В этом месте должна всплывать подсказка о полях объекта А (temp1) - для более быстрого написания кода, однако в указанных редакторах ничего не происходит? Может редакторы плохие или...?
Ответить с цитированием
  #2 (permalink)  
Старый 15.01.2011, 10:02
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от PashaTurok
В этом месте должна всплывать подсказка о полях объекта А
Кому должна? Это слишком нетривиальная логика для динамического языка. Чтобы понять, что в objectA хранится ссылка на объект A нужно выполнить JS код, а редакторы этого, разумеется, не делают.
Ответить с цитированием
  #3 (permalink)  
Старый 15.01.2011, 10:40
Интересующийся
Отправить личное сообщение для PashaTurok Посмотреть профиль Найти все сообщения от PashaTurok
 
Регистрация: 29.12.2010
Сообщений: 18

Не совсем с вами согласен. Точнее совсем не согласен.
Потому что если мы пишем:
function B()
{
this.objectA=B;
}
var exemplear=new B();
exeplear. после этого objectA будет всплывать сразу (хотя JS еще не выполнялся). Редакторы для программирования не выполняют код, а анализируют его!
Ответить с цитированием
  #4 (permalink)  
Старый 15.01.2011, 14:43
Аватар для Amphiluke
   ☽
Отправить личное сообщение для Amphiluke Посмотреть профиль Найти все сообщения от Amphiluke
 
Регистрация: 07.01.2011
Сообщений: 254

У меня с первым вашим примером Aptana нормально справляется: после набора «B.» выпадает список, в котором содержится, в частности и свойство objectA. Если выбрать из этого списка objectA, то в новом выпадающем списке содержится также свойство temp1.

По поводу второго.
Сообщение от PashaTurok
function B()
{
this.objectA=B;
}
objectA является свойством экземпляра «класса» B. Сам «класс» B свойства objectA не имеет, поэтому вроде как правильно, что при наборе «B.» в выпадающем списке не должно быть никакого objectA. А если вы создаете экземпляр (exemplear) оператором new, то вот он-то будет обладать свойством objectA.

Впрочем, моя Aptana не выводит никакого выпадающего списка про наборе текста «exeplear.» =(
Ответить с цитированием
  #5 (permalink)  
Старый 15.01.2011, 14:56
Интересующийся
Отправить личное сообщение для PashaTurok Посмотреть профиль Найти все сообщения от PashaTurok
 
Регистрация: 29.12.2010
Сообщений: 18

Спасибо за ответ! Вы правы, когда писал - писал приблизительно.
Вы можете проверить в вашей версии два варианта:
Вариант 1.
var A=
{
temp1:""
}

var B=
{
objectA:A
}
B.objectA выпадет temp1?

Здесь меня интересует как будут вести себя подсказки в объектных литералахю

Вариант 2.
var A=
{
temp1:""
}

function Bu()
{
this.objectA=A;
}

var exempl=new Bu();
exempl.objectA. выпадет temp1?
Здесь объединение объектный литерал + шаблон.
Какую версию Аптаны вы используете?
Ответить с цитированием
  #6 (permalink)  
Старый 15.01.2011, 15:01
Аватар для Amphiluke
   ☽
Отправить личное сообщение для Amphiluke Посмотреть профиль Найти все сообщения от Amphiluke
 
Регистрация: 07.01.2011
Сообщений: 254

Вариант 1 отрабатывает нормально, второй — нет.
Aptana Studio 3 Beta
Ответить с цитированием
  #7 (permalink)  
Старый 15.01.2011, 15:18
Интересующийся
Отправить личное сообщение для PashaTurok Посмотреть профиль Найти все сообщения от PashaTurok
 
Регистрация: 29.12.2010
Сообщений: 18

Установил третью. Самое интересное, что вариант 1 работает, а такой вариант не показывает:
function ura()
{

this.config="";
this.bubu = function()
{
this.hren="";
}
}
var obj=new ura();
obj. жду и нихера.... А у вас работает?
Ответить с цитированием
  #8 (permalink)  
Старый 15.01.2011, 15:38
Интересующийся
Отправить личное сообщение для PashaTurok Посмотреть профиль Найти все сообщения от PashaTurok
 
Регистрация: 29.12.2010
Сообщений: 18

У меня во второй работало, в третьей не работает. Все заработало в эклипсе.
Даже такое
var A=
{
temp1:{
dada:"",
netnet:""
}
}

function Bu()
{
this.objectA=A;
}
var exempl=new Bu();
exempl.objectA.temp1.dada Строка сформирована полностью на подсказках. Однако дом структура полностью отсутствует document. ... Счас гуглить буду.
PS. Просто абзац какой-то. Ни одного нормального редактора
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск