ООП - перебор объектов и применение к ним метода
Всем привет! Как создать много объектов, к примеру 10 000. Написал так:
function Car() { var newCar = {} this.honk = function() { document.write("Би-бип"); } return this; } myCar= []; myCar[]= new Car(); myCar[0].honk(); Второй вопрос как применить к массиву объектов метод? Возможно я не правильно полностью написал код, как правильно? Вообще мне нужно сделать известную игру "шарики" и Car() просто для примера. На ООП хочу реализовать вывод клеток, каждая клетка объект, вопрос как объявить столько объектов? Мое решение: for (...) myCar[i]= new Car(); Дальше возникла проблема с вызывом метода отрисовки клетки. |
wadim, Создать 10к экземпляров объекта можно в цикле, либо вручную.
Вызвать метод "honk" всех объектов массива myCar сразу нельзя, нужно пробежаться по элементам массива в цикле и вызвать для каждого объекта массива этот метод. PS. Можно расширить прототипа объекта Array, добавив в него новый метод, который будет это реализовывать. |
Nexus напишите пожалуйста как? 10к создаю: for (...) myCar[i]= new Car(); Правильно? Я даже к одному объекту обратится не могу: myCar[0].honk();
Не работает! |
Как это не работает?
<script> function Car() { var newCar = {} this.honk = function() { document.write("Би-бип<br>"); } return this; } myCar= []; for (var i = 0; i<10; i++) { myCar[i]= new Car(); } myCar[0].honk(); myCar[9].honk(); myCar.bang = function() { document.write("Ба-бах<br>");} myCar.bang(); </script> |
Dilettante_Pro спасибо. Странно что не работает: myCar[]= new Car(); Почему? Тот код, что написал Dilettante_Pro, мне просто пришел на ум, в интернете не нашел подобное. Вопрос, правильно ли я понимаю ООП? Правильно ли такое решение(код реализованный Dilettante_Pro)? Ну и наконец, подходит ли для решения моей задачи - игры "Шарики"?
|
wadim,
Что такое myCar[] ? Массив? Элемент массива? |
Цитата:
в прототипы стандартных объектов можно добавлять только полифилы. |
Цитата:
Я думаю тс так делать не станет, это будет банально неудобно. Если нужно сделать подобное, то лучше реализовать новый класс, который будет наследовать прототип от Array. |
myCar[]=1; - это я думаю не будет работать на js, а так $myCar[]=1; - на php без проблем.
|
wadim,
$myCar[]=1;//PHP== myCar.push(1);//JS |
Часовой пояс GMT +3, время: 13:21. |