Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.08.2012, 21:10
Новичок на форуме
Отправить личное сообщение для Хон Гиль Дон Посмотреть профиль Найти все сообщения от Хон Гиль Дон
 
Регистрация: 24.03.2010
Сообщений: 5

Непонятки с prototype
Во всех талмудах утверждается что у каждого объекта есть свойство prototype в котором хранится некоторый пустой обект, и этому объекту можно добавлять свойства которые будут доступны как свойства самого объекта, однако на практике теория не подтвержается:

myObj = {};
console.log(myObj.prototype) //выводит undefined
myObj.prototype.prop = 'some value'; //Ошибка "Cannot set property 'prop' of undefined


Что я понимаю неправильно ?
Ответить с цитированием
  #2 (permalink)  
Старый 12.08.2012, 21:19
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

Сообщение от Хон Гиль Дон
у каждого объекта есть свойство prototype
Это неверно. Это у каждой функции, созданной пользователем, есть свойство prototype, а у других объектов его может и не быть.

Последний раз редактировалось oneguy, 12.08.2012 в 21:22.
Ответить с цитированием
  #3 (permalink)  
Старый 12.08.2012, 21:31
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

У объекта нет свойства prototype, но есть скрытое свойство [[proto]], в котором хранится ссылка на прототип, заданный объекту при конструировании. Некоторые среды позволяют обратиться к нему по имени свойства __proto__, а в ES5 есть Object.getPrototypeOf:
var a = function(){};

alert( a instanceof Function )
alert( [a.__proto__, a.__proto__ === Function.prototype] )
alert( [Object.getPrototypeOf(a), Object.getPrototypeOf(a) === Function.prototype] )
Ответить с цитированием
  #4 (permalink)  
Старый 12.08.2012, 21:48
Новичок на форуме
Отправить личное сообщение для Хон Гиль Дон Посмотреть профиль Найти все сообщения от Хон Гиль Дон
 
Регистрация: 24.03.2010
Сообщений: 5

Да, действительно, везде где используется нотация
someObj.prototype.bla = something
этот someObj является функцией, но нигде на этот подвох не указывается, надо бы послать реквест в javascript garden
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
первые версии библиотеки Prototype vadim5june Общие вопросы Javascript 4 12.07.2012 11:44
конфликт prototype и mootools Lutsk Библиотеки/Тулкиты/Фреймворки 0 22.02.2012 20:34
Перевести код с prototype в jquery alexey_samara jQuery 2 07.12.2010 16:52
Prototype v1.4.0 and Prototype v1.5.1_rc3 prihod Prototype & script.aculo.us 2 02.10.2008 16:08
проблема с передачей русского текста в Prototype subaru Prototype & script.aculo.us 2 26.07.2007 16:56