Показать сообщение отдельно
  #37 (permalink)  
Старый 24.08.2009, 19:06
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Сообщение от JSprog
Ошибся
В чём?

Сообщение от JSprog
Метод экземпляра может быть вызван для любого экземпляра класса, но это не значит, что каждый объект содержит собственную копию метода, как в случае свойства экземпляра. Вместо этого каждый метод экземпляра совместно используется всеми экземплярами класса
А, т.е. в этом случае:

function A(x) {
  this.x = x;
  this.getX = funciton () {
    return this.x;
  };
}

var a = new A(10);
var b = new A(20);

alert(a.getX()); // 10
alert(b.getX()); // 20


Объекты "а" и "b" будут иметь разное свойство "x", но одинаковый для обоих метод .getX? Или я не так понял?

Сообщение от JSprog
В JavaScript мы определяем метод экземпляра класса путем присваивания функции свойству объекта прототипа в
конструкторе.
Это касаетса только методов
Или ты имел в виду, когда метод описан в прототипе, только тогда он расшаривается между всеми экземплярами? А почему касается только методов? В чём тогда отличие от свойств? Свойство же тоже можно разместить в прототипе.

Сообщение от JSprog
Плюсик бы поставил тогда=)
А я ещё не полностью разобрался

В частности, не было объяснено, каким образом объект общается с прототипом, если A.prototype уже null? И, если, всё-таки, конструктор и .prototype могут быть null, то получается, это:

Сообщение от JSprog
Связь с конструктором так как дочерние объекты не копируют свойство а тольок "читают" его
не верно? Получается, объект связан с конструктором лишь на момент создания конструктором этого объекта. Дальше конструктор может быть уничтожен, так? Или я недопонял?
__________________
Тонкости ECMAScript

Последний раз редактировалось Dmitry A. Soshnikov, 24.08.2009 в 19:08.
Ответить с цитированием