Dmitry A. Soshnikov |
24.08.2009 19:24 |
JSprog, подожди, тут я уже начал путаться.
Цитата:
Сообщение от JSprog
В том что свойства из прототипа просто читаютса
|
А что ещё можно с ними делать? Вероятно, не только читать из прототипа, но и записывать туда. И свойства и методы, да?
Цитата:
Сообщение от JSprog
Именно
|
А почему тогда в данном случае .hasOwnProperty выдаёт true?
function A(x) {
this.x = x;
this.getX = funciton () {
return this.x;
};
}
var a = new A(10);
var b = new A(20);
// ну тут понятно
alert(a.hasOwnProperty('x')); // true
alert(b.hasOwnProperty('x')); // true
// а здесь почему, если ты говоришь, что
// метод getX - один на оба объекта
alert(a.hasOwnProperty('getX')); // true
alert(b.hasOwnProperty('getX')); // true
Цитата:
Сообщение от JSprog
Ведь зачем копировать метода на всех? Это отнимает много памяти да и редко методы менять приходитса в экземплярах.
|
Логично, но почему тогда .hasOwnProperty('getX') для обоих объектов выдало true? Есть ли какой-нибудь способ, чтобы метод .getX действительно был один на оба объекта? Сейчас получается, что оба из них имеют две разные функции, но выполняющие одно и тоже. Реально, не очень выгодно по ресурсам.
Цитата:
Сообщение от JSprog
Методы это тоже свойства которые содержат функцию.
|
Ну я понимаю, т.е. и свойства и методы можно хранить в прототипе и тогда эти свойства и методы будут одними и теми же на все экземпляры, так? Или не так?
Цитата:
Сообщение от JSprog
Верно только для методов
|
Можешь показать на примере, не очень понял. Почему свойства так обделены?
|