русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Свойства и методы универсального класса Object


Дата добавления: 2015-01-08; просмотров: 1102; Нарушение авторских прав


Как уже отмечалось, все объекты в JavaScript наследуют свойства и методы класса Object. При этом специализированные классы объектов, как, например, те, что создаются с помощью конструкторов Date() или RegExp(), определяют собственные свойства и методы, но все объекты независимо от своего происхождения помимо всего прочего поддерживают свойства и методы, определенные классом Object. По причине их универсальности эти свойства и методы представляют особый интерес.

à Свойство constructor

В JavaScript любой объект имеет свойство constructor, которое ссылается на функцию-конструктор, используемую для инициализации объекта. Например, если объект d создается с помощью конструктора Date(), то свойство d.constructor ссылается на функцию Date:

var d = new Date( );

d.constructor == Date;// Равно true

Функция-конструктор определяет категорию, или класс, объекта, поэтому свойство constructor может использоваться для определения типа любого заданного объекта. Например, тип неизвестного объекта можно выяснить таким способом:

if ((typeof o == "object") && (o.constructor == Date))

//Какие-то действия с объектом Date...

Проверить значение свойства constructor можно с помощью оператора instanceof, т. е. приведенный фрагмент можно записать несколько иначе:

if ((typeof o == "object") && (o instanceof Date))

à Метод toString()

Метод toString() не требует аргументов; он возвращает строку, каким-либо образом представляющую тип и/или значение объекта, для которого он вызывается.

Интерпретатор JavaScript вызывает этот метод объекта во всех тех случаях, когда ему требуется преобразовать объект в строку. Например, это происходит, когда используется оператор + для конкатенации строки с объектом, или при передаче объекта такому методу, как alert() или document.write().



Метод toString() по умолчанию не очень информативен. Например, следующий фрагмент просто записывает в переменную s строку "[object Object]":

var s = { x:1, y:1 }.toString( );

Этот метод по умолчанию не отображает особенно полезной информации, поэтому многие классы определяют собственные версии метода toString(). Например, когда массив преобразуется в строку, мы получаем список элементов массива, каждый из которых преобразуется в строку, а когда в строку преобразуется функция, мы получаем исходный код этой функции.

à Метод toLocaleString()

В ECMAScript v3 и JavaScript 1.5 класс Object в дополнение к методу toString() определяет метод toLocaleString(). Назначение последнего состоит в получении локализованного строкового представления объекта. По умолчанию метод toLocaleString(), определяемый классом Object, никакой локализации не выполняет; он всегда возвращает в точности такую же строку, что и toString(). Однако подклассы могут определять собственные версии метода toLocaleString(). В ECMA-Script v3 классы Array, Date и Number определяют версии метода toLocaleString(), возвращающие локализованные значения.

à Метод valueOf()

Метод valueOf() во многом похож на метод toString(), но вызывается, когда интерпретатору JavaScript требуется преобразовать объект в значение какого-либо элементарного типа, отличного от строки, – обычно в число. Интерпретатор JavaScript вызывает этот метод автоматически, если объект используется в контексте значения элементарного типа. По умолчанию метод valueOf() не выполняет ничего, что представляло бы интерес, но некоторые встроенные категории объектов переопределяют метод valueOf() (например, Date.valueOf()).

à Метод hasOwnProperty()

Метод hasOwnProperty() возвращает true, если для объекта определено не унаследованное свойство с именем, указанным в единственном строковом аргументе метода. В противном случае он возвращает false. Например:

var o = {};

o.hasOwnProperty("undef"); // false: свойство не определено

o.hasOwnProperty("toString"); // false: toString – это унаследованное свойство

Math.hasOwnProperty("cos"); // true: объект Math имеет свойство cos

Метод hasOwnProperty() определяется стандартом ECMAScript v3 и реализован в JavaScript 1.5 и более поздних версиях.

à Метод propertyIsEnumerable()

Метод propertyIsEnumerable() возвращает true, если в объекте определено свойство с именем, указанным в единственном строковом аргументе метода, и это свойство может быть перечислено циклом for/in. В противном случае метод возвращает false. Например:

var o = { x:1 };

o.propertyIsEnumerable("x");//true: свойство существует

//и является перечислимым

o.propertyIsEnumerable("y");// false: свойство не существует

o.propertyIsEnumerable("valueOf"); //false: свойство неперечислимое

Метод propertyIsEnumerable() определяется стандартом ECMAScript v3 и реализован в JavaScript 1.5 и более поздних версиях.

à Метод isPrototypeOf()

Метод isPrototypeOf() возвращает true, если объект, которому принадлежит метод, является прототипом объекта, передаваемого методу в качестве аргумента. В противном случае метод возвращает false. Например:

var o = {};

Object.prototype.isPrototypeOf(o); //true: o.constructor == Object

Object.isPrototypeOf(o);// false

o.isPrototypeOf(Object.prototype);// false

Function.prototype.isPrototypeOf(Object);// true: Object.constructor == Function



<== предыдущая лекция | следующая лекция ==>
Object.property | Объект String (Строка)


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.201 сек.