Re: [JS] левые кросс-объектные поля (а-ля static var в класс
От: Zeroglif  
Дата: 22.11.06 08:07
Оценка: 2 (1)
Здравствуйте!

Несмотря на то, что вы создаёте два разных экземпляра, внутри конструктора вы "управляете" общим для них обоих объектом-прототипом, его свойствами, т.к. непосредственно у экземпляров нет своих "собственных" свойств с именами i и j. Всё стандартно.

— При первом вызове конструктора массив i пустой, поэтому в алерте undefined.
— Перед выходом из конструктора заталкиваем в массив i элемент со значением 1.
— При втором вызове конструктора в алерте виден тот самый первый элемент со значением 1.

Пара ссылок на эту тему и на тему подходов к созданию экземпляров:
http://weblogs.asp.net/bleroy/archive/2006/10/07/Careful-with-that-prototype_2C00_-Eugene.aspx
http://weblogs.asp.net/bleroy/archive/2006/10/11/From-closures-to-prototypes_2C00_-part-1.aspx
http://weblogs.asp.net/bleroy/archive/2006/10/14/From-closures-to-prototypes_2C00_-part-2.aspx
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.