![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Сначала рассмотрим пример определенного пользователем объекта класса Rectangle, потом выясним, что же это такое:
function Rectangle(a,b,c,d){this.x0 = a;this.y0 = b;this.x1 = c;this.y1 = d; this.area = new Function("return Math.abs((this.x1-this.x0)*(this.y1-this.y0))");} r = new Rectangle(0,0,30,50);Этот же пример использовался выше в разделе "Функции" для иллюстрации применения конструктора Function. Здесь мы рассмотрим его в более общем контексте.
Функция Rectangle () - это конструктор объекта класса Rectangle, определенного пользователем. Конструктор позволяет создать экземпляр (объект) данного класса. Ведь функция - это не более чем описание некоторых действий. Для того чтобы эти действия были выполнены, необходимо передать функции управление. В нашем примере это делается при помощи оператораnew Rectangle. Он вызывает функцию Rectangle () и тем самым генерирует реальный объект r.
В результате этого создается четыре переменных: x0, y0, x1, y1 - это свойства объекта r. К ним можно получить доступ только в контексте объекта данного класса, например:
up_left_x = r.x0;up_left_y = r.y0;Кроме свойств, внутри конструктора Rectangle мы определили объект area класса Function(), применив встроенный конструктор языка JavaScript. Это методы объекта класса Rectangle. Вызвать эту функцию можно тоже только в контексте объекта класса Rectangle:
sq = r.area();Таким образом, объект - это совокупность свойств и методов, доступ к которым можно получить, только создав при помощи конструктора объект данного класса и использовав его контекст.
На практике довольно редко приходится иметь дело с объектами, созданными программистом. Дело в том, что объект создается функцией-конструктором, которая определяется на конкретной странице и, следовательно, все, что создается в рамках данной страницы, не может быть унаследовано другими страницами. Нужны очень веские основания, чтобы автор Web-узла занялся разработкой библиотеки пользовательских классов объектов. Гораздо проще писать функции для каждой страницы.
Дата публикования: 2015-01-24; Прочитано: 195 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!