В JavaScript, если у нас есть объект, но не знаем его конструктор, как мы получаем его объект прототипа?
В браузере Chrome или Firefox мы можем напрямую использовать атрибут __proto__ объекта, чтобы получить его объект прототипа.
Кода -копия выглядит следующим образом:
<!-Ланг: JS->
функция f () {};
var foo = new f ();
оповещение (foo .__ Proto__ == F.Protototype);
Тем не менее, атрибут __proto__ не поддерживается в браузере IE до IE11.
Итак, в браузерах, которые не поддерживают атрибут __proto__, как мы получаем объект прототипа объекта? Это может быть получено косвенно через конструктор.
Кода -копия выглядит следующим образом:
<!-Ланг: JS->
функция f () {};
var foo = new f ();
Alert (foo.constructor.prototype == f.protototype);
Атрибут конструктора не является собственным атрибутом объекта, но получен из объекта прототипа вверх по цепочке прототипа. Это свойство указывает на конструктор, соответствующий этому объекту прототипа. Свойство прототипа конструктора указывает на объект прототипа, поэтому мы можем получить его косвенно.
Выше приведено все о получении объектов прототипа в JavaScript. Надеюсь, вам понравится.