Передача сразу в конструктор
Почему тут при инициализации класса в конструктор не передается this.classs?
function Branch(){ this.branch = []; this.branchUl = document.createElement('UL'); this.branchUl.className = this.classs; document.body.appendChild(this.branchUl); alert(this.classs) }; function Last() { this.classs = 'last'; this.when = 'last'; this.lastBooks = []; Last.prototype = new Branch; Last.prototype.constructor = Last; }; |
потому что this равен экземпляру Branch, а не экземпляру Last.
тут можно позаимствовать конструктор : Last.prototype = new Branch; // => Branch.call(this); |
melky,
Спасибо. Еще другой вопрос. Как создать именованный массив, чтоб именем могло быть даже число. Вот например: var f = [] var g = "44343" ; f[g] = "dssd" Тут g станет на 44343 место, а должно быть "44343" : "dssd" |
|
lord2kim,
Да. Думал об этом. Но все же хотелось бы массивом. Хотя, дурацкое рассуждение. Мне просто надо иметь возможность отличать свойство-базу данных от просто свойств. Планировал проверять потом инстансеофом на принадлежность к массиву |
PashPP,
Ключами свойств любого объекта могут быть только строки. Если значение внутри квадратных скобок другого типа, то оно преобразуется в строку, и берётся свойство в объекте с таким ключом. Поэтому obj[44343] эквивалентно obj["44343"]. Тоже самое касается в том числе и массивов, так как они тоже являются объектами. При var a=[34, 56]; массив a будет иметь собственные свойства "0", "1" и "length". |
Часовой пояс GMT +3, время: 03:56. |