|
Длина массива в объекте
Имеется скрипт:
<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 без суммирования? |
Eng.length Rus.length |
Не работает, будет равно нулю. length в объекте, судя по всему, присваивается в самом начале, когда массивам еще не переданы величины после создания объекта:
//this.count = 0; this.count = Eng.length //......... alert (LWord.count);// = 0 Вот потому и спрашиваю. length хотелось бы получить однократно без постоянного суммирования, может быть через вызов функции, но как - не соображу. |
После вашего кода вызовите
alert(LWord.Eng.length, LWord.Rus.length); |
Так работает, но хотелось бы иметь свойство "второго" порядка, а не "третьего". То-есть не LWord.Eng.length, а LWord.count
|
Ну так в чём проблема? Создать отдельное свойство которое вернет length? ;)
|
Как?
this.count = Eng.length или this.count = this.Eng.length в обоих случаях LWord.count будет равен нулю. |
this.count = function() { return Eng.length; }; |
Результат отрицательный. В окне после вызова alert (LWord.count) выводится:
function() { return Eng.length; } |
Покажите весь код
|
Часовой пояс GMT +3, время: 12:42. |
|