Показать сообщение отдельно
  #2 (permalink)  
Старый 07.07.2012, 12:45
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

Сообщение от almac
1. Почему прототип объекта не является простым Object?
Пример (тут он явно не просто Object):
function Obj() {}; Obj.prototype;
function a() {}; 
alert(a.prototype instanceof Object) //true

Почему это не объект?
Сообщение от almac
2. В чем разница между прототипом и экземпляром объекта? В консоль они выводятся почти как один и тот же объект (выглядят так, как будто были созданы при помощи одного и того же конструктора)
Пример:
function Obj() {}; var o = new Obj(); o; Obj.prototype;
Смотри:
function Animal() {
this.name = 'имя по умолчанию'
this.type = 'По умолчанию - медведь'
}
var bear = new Animal(); 
/* Вид bear:
{
name: 'имя по умолчанию',
type: 'по умолчанию медведь'
}
*/
alert(bear.name); alert(bear.type);
bear.name = 'Изменяем имя у bear'
alert(bear.name) // изменили ( в prototype - нет )
/* Смысл в том, что в прототипе содеражться ССЫЛКИ на свойства  конструктора, а ново созданом объекте все приватное (мы изменили имя, но в прототипе оно не изменилось)
*/

Сообщение от almac
3. Зачем задавать конструктор для прототипа при ПЕРЕзаписи прототипа?
Пример:
function Obj() {}; Obj.prototype = {}; Obj.prototype.constructor = Obj;
Это уже смотрите задачу, так пример не приведу сходу. Дело в том, что:
function a() {} // Если читали про прототипы вообще, то знаете, что единственное свойство которое есть у прототипов при созданию, это constructor, в твоем коде, ты его меняешь. (опустошаешь, и меняешь)

Про последнее уже не знаю.
P.S. мог что-то неправильно сказать, так что...почитай еще)
__________________
оляля, ололо

Последний раз редактировалось 9xakep, 07.07.2012 в 12:54.
Ответить с цитированием