<MyRusakov.ru />

Разработчик игр на Unreal Engine

Разработчик игр на Unreal Engine

Этот комплект с нуля всего за 7 месяцев сделает Вас Unreal-разработчиком. И при этом учиться достаточно 1 час в день.

Начнёте Вы с основ программирования, постепенно перейдя к C++. Затем очень подробно изучите Unreal Engine, и после научитесь программировать на C++ в Unreal Engine. В конце создадите крупный проект на C++ в Unreal Engine для своего портфолио.

Комплект содержит:

- 416 видеоуроков

- 95 часов видео

- 1024 задания для закрепления материала из уроков

- 3 финальных тестирования

- 4 сертификата

- 12 Бонусных курсов

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Объект Object в JavaScript

Объект Object в JavaScript

Объект Object в JavaScript используется крайне редко, я бы даже сказал крайне-крайне редко. Однако, этот объект имеет первостепенную важность. Почему? Очень просто: этот объект является головным для всех объектов в JavaScript. Или, другими словами, все объекты наследуются от объекта Object. Следовательно, все свойства и методы этого объекта работают и для всех других объектов в JavaScript. Поэтому рассмотрев свойства и методы объекта Object, мы моментально разберёмся с кучей свойств и методов всех других классов.

Начнём мы со свойства prototype. Это свойство позволяет добавлять новые свойства в объекты, как бы это странно не звучало. Предлагаю сразу перейти к примеру:

var string = new String ("My String");
String.prototype.newProp = 5;
document.write(string.newProp);

В данном примере мы создали экземпляр объекта String, затем добавили новое свойство, используя свойство prototype класса Object, со значением 5. А затем у созданного нами объекта мы выводим значение этого свойства.

Свойство prototype также позволяет добавлять новые методы. Вот пример:

String.prototype.newFunc = func;
function func () {
  alert("Новый метод");
}
string.newFunc();

В результате сработает метод, применённый к объекту String.

Переходим теперь к методам объекта Object (а, соответственно, и к методам всех других объектов), и начнём с методов watch() и unwatch(). Первый метод позволяет начать слежку за изменением какого-либо свойства, а второй, наоборот, снимает слежку. Сразу пример:

var strng = new String();
String.prototype.newProp = 5;
string.watch("newProp", func);
string.newProp = 0;
string.unwatch("newProp");
string.newProp = 5;
function func() {
  alert("Значение свойства было изменено!");
}

Вначале мы создаём объект String, чтобы проверить работу методов. Затем добавляем в класс String новое свойство (которое, разумеется, будет и у экземпляра объекта String - переменной string). Затем начинаем слежку за этим новым свойством. И при его изменении требуем вызов функции func(). Затем изменяем значение свойства, чтобы вызвалась функция func(). После этого снимаем слежку, снова изменяем свойство newProp. Результат: после первого изменения вызвалась функция func(), а после второго изменения ничего не произошло (потому что перед этим мы сняли слежение). Как видите, всё очень и очень просто.

Переходим к последнему методу, но, пожалуй, самому важному, и который использует чаще других вместе взятых. Этот метод называется toString(), и занимается он преобразованием объекта в строку. Когда мы писали что-то наподобие этого:

var date = new Date();
document.write(date);

У нас срабатывал метод toString(), который описан для объекта Date. Ведь очевидно, что каждый объект будет выглядеть по-разному: массив одним образом, дата и время другим, а строка третьим. Поэтому реализация метода toString() от объекта к объекту всегда меняется.

Давайте сейчас сделаем простейший пример с использованием метода toString(), чтобы Вы поняли, как он вообще работает. А в следующих статьях я Вам покажу, как его надо использовать при создании собственных объектов.

var date = new Date();
Date.prototype.toString = func;
document.write(date);
function func() {
  return "<b>abc</b>";
}

Здесь мы переопределяем реализацию метода toString(), а затем выводим объект. Разумеется, вызывается уже наша функция, которая, как и полагается, возвращает строку (строковое представление объекта, другими словами). В результате, в окне браузера Вы увидите: abc.

Вот и все самые основные свойства и методы объекта Object, который является элементарным типом данных в JavaScript и от которого появились все остальные объекты этого языка.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (4):

Hound672 Hound672 23.11.2013 21:05:22

Хром ругается на метод match. Uncaught TypeError: Object [object Date] has no method 'watch' Да и в других браузерах тоже этот скрипт не работает.

Ответить

alexandrdante alexandrdante 24.11.2013 17:09:52

Кажется,отвечал Вам на форуме. Это не кроссбраузерно,но плагин работает http://stackoverflow.com/questions/1029241/javascript-object-watch-for-all-browsers + то,что уже писал на форуме о том,с какими браузерами дружит и зачем нужен

Ответить

Adja Adja 03.11.2017 23:10:56

странно, но у меня на Netscape и почему-то не понимает третий скрипт с верху, а именно: string.watch("newProp", func); - выдаёт ошибку: "Uncaught TypeError: string.watch is not a function". И в JavaScript книги вообще нету метода watch(), дальше не проверял!

Ответить

M2-16 M2-16 26.04.2019 10:21:51

...Итак, прошло 8 лет. Методы watch() и unwatch() устарели и не знакомы современным браузерам. Подробнее https://code-examples.net/ru/docs/javascript/global_objects/object/watch

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.