Есть ли супер-прототип "Объект" всех объектов в JavaScript?Что это за объект (первая буква заглавная) в JavaScript - PullRequest
0 голосов
/ 18 января 2012

Есть ли в javascript супер-прототип "Объект" из всех объектов?Что это за объект (первая буква заглавная) в javascript.В javascript Object является прототипом всех объектов, так как Object class является суперклассом всех классов в Java.

Ответы [ 3 ]

1 голос
/ 18 января 2012

Я думаю, что вы имеете в виду, если вы поместите что-то в Object.prototype, будет ли оно доступно для всего , потому что все они расширяются Object. Простой ответ, да.

Если вы поместите что-то в Object.prototype, то при создании экземпляра, скажем, XMLHttpRequest, вы сможете получить доступ к тому, что вы установили. Как это:

Object.prototype.foo = 'bar';
var req = new XMLHttpRequest();
console.log(req.foo); // bar
0 голосов
/ 18 января 2012

Да, Object - самый верхний объект в иерархии прототипов.Однако не рекомендуется загрязнять Object.prototype, потому что такие свойства будут отображаться, например, в цикле for-in (если вы не сделаете их не перечисляемыми).Также обратите внимание, что в IE до версии 8 хост-объекты не наследуются от Object: document.body instanceof Object === false.

0 голосов
/ 18 января 2012

Просто введите Object.prototype в вашей консоли. Вы увидите что-то вроде

enter image description here

Чтобы проверить гипотезу о том, что все функции в javascript расширяются от Object, так же как все классы расширяются от Object в Java, см. Следующее:

enter image description here

Так что ответ - да.

Но имейте в виду, что javascript использует прототип наследования, в то время как в javascript все объекты получают методы Object на своем прототипе, как и в Java, другие сходства не сохранятся.

...