Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.01.2012, 23:47
Аспирант
Отправить личное сообщение для diagnost Посмотреть профиль Найти все сообщения от diagnost
 
Регистрация: 30.10.2008
Сообщений: 47

Длина массива в объекте
Имеется скрипт:

<script>

function Lingvo() {
	var Eng = [];
	var Rus = [];
	this.count = 0;
	this.Eng = Eng;
	this.Rus = Rus;
	this.AddEng = function (EngWord) {
		Eng.push(EngWord);
		this.count += 1;
	}
	this.AddRus = function (RusWord) {
		Rus.push(RusWord);
	}
}

var LWord = new Lingvo;
LWord.AddEng("father");
LWord.AddRus("папа");
LWord.AddEng("he");
LWord.AddRus("он");
LWord.AddEng("bread");
LWord.AddRus("хлеб");

alert (LWord.count);
</script>

Нельзя ли более грамотно получать длину массива Lingvo.count без суммирования?
Ответить с цитированием
  #2 (permalink)  
Старый 03.01.2012, 00:00
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

Eng.length
Rus.length
Ответить с цитированием
  #3 (permalink)  
Старый 03.01.2012, 00:05
Аспирант
Отправить личное сообщение для diagnost Посмотреть профиль Найти все сообщения от diagnost
 
Регистрация: 30.10.2008
Сообщений: 47

Не работает, будет равно нулю. length в объекте, судя по всему, присваивается в самом начале, когда массивам еще не переданы величины после создания объекта:
//this.count = 0;
this.count = Eng.length

//.........
alert (LWord.count);// = 0

Вот потому и спрашиваю. length хотелось бы получить однократно без постоянного суммирования, может быть через вызов функции, но как - не соображу.

Последний раз редактировалось diagnost, 03.01.2012 в 00:14.
Ответить с цитированием
  #4 (permalink)  
Старый 03.01.2012, 00:10
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

После вашего кода вызовите
alert(LWord.Eng.length, LWord.Rus.length);
Ответить с цитированием
  #5 (permalink)  
Старый 03.01.2012, 00:15
Аспирант
Отправить личное сообщение для diagnost Посмотреть профиль Найти все сообщения от diagnost
 
Регистрация: 30.10.2008
Сообщений: 47

Так работает, но хотелось бы иметь свойство "второго" порядка, а не "третьего". То-есть не LWord.Eng.length, а LWord.count
Ответить с цитированием
  #6 (permalink)  
Старый 03.01.2012, 00:16
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

Ну так в чём проблема? Создать отдельное свойство которое вернет length?
Ответить с цитированием
  #7 (permalink)  
Старый 03.01.2012, 00:21
Аспирант
Отправить личное сообщение для diagnost Посмотреть профиль Найти все сообщения от diagnost
 
Регистрация: 30.10.2008
Сообщений: 47

Как?
this.count = Eng.length

или
this.count = this.Eng.length

в обоих случаях LWord.count будет равен нулю.
Ответить с цитированием
  #8 (permalink)  
Старый 03.01.2012, 00:24
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

this.count = function() {
    return Eng.length;
};
Ответить с цитированием
  #9 (permalink)  
Старый 03.01.2012, 00:28
Аспирант
Отправить личное сообщение для diagnost Посмотреть профиль Найти все сообщения от diagnost
 
Регистрация: 30.10.2008
Сообщений: 47

Результат отрицательный. В окне после вызова alert (LWord.count) выводится:
function() {
    return Eng.length;
}

Последний раз редактировалось diagnost, 03.01.2012 в 00:30.
Ответить с цитированием
  #10 (permalink)  
Старый 03.01.2012, 00:31
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

Покажите весь код
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
splice массива массивов vahrusha Общие вопросы Javascript 9 27.07.2010 15:41
Как проверить название массива? Andrej_2 Общие вопросы Javascript 2 30.06.2010 21:07
Можно ли как для произвольного массива создавать вызовы функций , имеющих на входе kefi Общие вопросы Javascript 3 17.04.2009 16:53
вставка элементов массива в текстовую форму по клику olezyk Общие вопросы Javascript 3 21.03.2009 22:01