Задать вопрос

В чем отличия Object.prototype.method и Object.method?

Вот увидел такой кусочек кода

Object.prototype.toString.call({});

для получения класса объекта. И не могу понять: зачем нам prototype? Ведь по сути нам просто нужно получить функцию и задать контекст, почему же тогда работает только с prototype? И еще, почему на MDN Mozilla (и на других ресурсах) также некоторые методы и свойства описываются с prototype, а некоторые без него? Только потому что одни могут наследоваться, а другие нет? Сразу скажу, что я читал о прототипах и понимал все до примера выше.
  • Вопрос задан
  • 339 просмотров
Подписаться 3 Простой 1 комментарий
Решения вопроса 1
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
В чем отличия Object.prototype.method и Object.method?

Object.method — это методы конструктора Object. Ну вроде как статические методы в php, если провести аналогию.
Object.prototype.method — это методы экземпляров Object и его потомков.

И не могу понять: зачем нам prototype? Ведь по сути нам просто нужно получить функцию и задать контекст, почему же тогда работает только с prototype?

Потому что данная функция определена именно в прототипе.

Тут всё довольно просто, без заморочек.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
SecretBrain
@SecretBrain
still trainee
Да собственно никак на различаются:
alert( {}.toString == Object.prototype.toString ); // true, да
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
Wanted. Москва
от 250 000 до 400 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
22 янв. 2025, в 19:19
2300 руб./в час
22 янв. 2025, в 18:00
15000 руб./за проект
22 янв. 2025, в 17:57
2000 руб./в час