2013-03-02 4 views
2

Я понимаю прототип JavaScript. Но путайте с различием между свойством прототипа и скрытой ссылкой прототипа. Также разница между ссылкой прототипа объекта и ссылкой прототипа функции?Свойство и прототип прототипа JavaScript

Может кто-то просьба представить очень простой пример, чтобы продемонстрировать то же самое (в основном ссылку прототип/цепочки ... нравится, как это выглядит на собственность с точки зрения как прототип объекта связи и функции прототипа ссылки)

+0

Я не думаю, что есть какая-то скрытая ссылка. По крайней мере, не в эти дни. Свойство прототипа - это все, что ему нужно. Также нет никакой разницы между прототипом объекта и прототипом функции. – Jodes

+1

go here: nice read - http://yehudakatz.com/2011/08/12/understanding-prototypes-in-javascript/ –

ответ

1

Document Object Model (DOM) - прекрасный пример наследования в JavaScript.

Представьте, что у вас есть div. Это пример HTMLDivElement.

var div = document.createElement('div'); 

div instanceof HTMLDivElement; // -> true 

div instanceof HTMLElement; // -> true 

div instanceof Element; // -> true 

div instanceof Object; // -> true 

div является Объект и включает в себя все методы и свойства, находится в HTMLDivElement.prototype. Это под __proto___ собственности, но это не значит, что вы должны сделать div.__proto__.insertBefore для доступа insertBefore. Это похоже на включение в другие языки.

Иными словами, div.__proto__ указывает на HTMLDivElement.prototype.

prototype - Объект. Из-за этого он может иметь свой собственный указатель __proto__. В этом случае HTMLDivElement - prototype - Объект и имеет __proto__, который указывает на HTMLElement.prototype, поэтому он включает в себя все методы и свойства. Он идет по этому пути до Object.prototype, у которого нет указателя __proto__ и поиска.

Я пытался избежать использования ключевого слова new для объяснения этого. Надеюсь, это поможет ...

Смежные вопросы