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

Объект 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 и от которого появились все остальные объекты этого языка.