русс | укр

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

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

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

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


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

Функции как методы


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


 

Метод – это не что иное, как функция, которая хранится в свойстве объектаи вызывается посредством этого объекта. Не забывайте, что функции – это всего лишь значения данных, а в именах, с которыми они определены, нет ничего не_ обычного. Поэтому функции могут присваиваться любым переменным, равно


 

8.4. Функции как методы
   

 

как и свойствам объектов. Например, если имеется функция f и объект o, вполне возможно так определить метод с именем m:

 

o.m = f;

Определив в объекте o метод m(), к нему можно обратиться следующим образом:

 

o.m();

Или, если метод m() ожидает получить два аргумента:

 

o.m(x, x+2);

 

Методы обладают одним очень важным свойством: объект, посредством которо_ го вызывается метод, становится значением ключевого слова this в теле метода. То есть когда вызывается метод o.m(), в теле метода можно получить доступ к объекту o с помощью ключевого слова this. Это утверждение демонстрируется в следующем примере:

 

var calculator = { // Литерал объекта

operand1: 1,

operand2: 1,

compute: function( ) {

this.result = this.operand1 + this.operand2;

}      
};      
calculator.compute(); // Сколько будет 1+1?
print(calculator.result); // Выводит результат

 

Ключевое слово this играет очень важную роль. Любая функция, вызываемая как метод, получает в свое распоряжение дополнительный неявный аргумент – объект, посредством которого эта функция была вызвана. Как правило, методы выполняют некоторые действия над этим объектом, таким образом, синтаксис вызова методов наглядно отражает тот факт, что функция оперирует объектом. Сравните следующие две строки программы:



 

rect.setSize(width, height); setRectSize(rect, width, height);

 

Гипотетически функции, вызывающиеся в этих двух строках, могут произво_ дить абсолютно идентичные действия над объектом rect (гипотетическим), но синтаксис вызова метода в первой строке более наглядно демонстрирует, что в центре внимания находится объект rect. (Если первая строка не показалась вам более естественной, это означает, что у вас еще нет опыта объектно_ориенти_ рованного программирования.)

 

Когда функция вызывается как функция, а не как метод, ключевое слово this ссылается на глобальный объект. Самое странное, что это верно даже для функ_ ций (если они вызываются как функции), вложенных в методы, которые в свою очередь вызываются как методы. Ключевое слово this имеет одно значение в объ_ емлющей функции и ссылается на глобальный объект в теле вложенной функ_ ции (что интуитивно совершенно не очевидно).

 

Обратите внимание: this – это именно ключевое слово, а не имя переменной или свойства. Синтаксис JavaScript не допускает возможность присваивания значе_ ний элементу this.


 

152 Глава 8. Функции



<== предыдущая лекция | следующая лекция ==>
Функции как данные | Свойство length


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


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

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

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


 


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

 
 

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

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