Непонятки с prototype
Во всех талмудах утверждается что у каждого объекта есть свойство prototype в котором хранится некоторый пустой обект, и этому объекту можно добавлять свойства которые будут доступны как свойства самого объекта, однако на практике теория не подтвержается:
myObj = {}; console.log(myObj.prototype) //выводит undefined myObj.prototype.prop = 'some value'; //Ошибка "Cannot set property 'prop' of undefined Что я понимаю неправильно ? |
Цитата:
|
У объекта нет свойства 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] ) |
Да, действительно, везде где используется нотация
someObj.prototype.bla = somethingэтот someObj является функцией, но нигде на этот подвох не указывается, надо бы послать реквест в javascript garden |
Часовой пояс GMT +3, время: 10:22. |