Resize(100, null, null, true)




 

Чтобы избежать лишних null и сделать код более понятным, используют нечто вроде "keyword arguments", существующих в Python и Ruby. Для этого много параметров пакуют в единый объект:

 

function resize(setup) {

// значения по умолчанию

var saveProportions = setup.saveProportions || true

var animate = setup.animate || true

var toHeight = setup.toHeight ||...

}

Вызов теперь делается гораздо проще:

 

var setup = {toWidth: 100, animate: true}

Resize(setup)

// или

resize({toWidth: 100, animate: true})

 

Так - куда понятнее. А если параметров больше 5, то вообще - единственный нормальный способ.

Кроме того, с объектом можно удобнее делать последовательности вызовов вроде:

 

var setup = {toWidth: 100, animate: true, saveProportions: false}

Resize(setup)

setup.toWidth = 200

Resize(setup)

 

Функции в Javascript - это вторая по важности (после объектов) конструкция в Javascript. Например, если нужно при наведении мыши на кнопку создать выпадающее меню или плавно развернуть вкладку - это всё делается с помощью функций.

Рассмотрим синтаксис функции:

 

<script type="text/javascript"> function имя функции (аргумент1,аргумент2...) { команды, которые должна исполнить функция; return (переменные или другие объекты, которые должна возвратить функция. Если таковых нет - return не пишем.); } </script>

Для вызова функции непосредственно в самом скрипте достаточно написать её имя и, если нужно, - её параметры, например, напишем и применим функцию, которая будет суммировать две переменные:

<script type="text/javascript">
var sa = 100; var sha = 1; function summa (a,b) { var sum = a + b; return (sum); } document.write(summa(sa,sha));/*это упрощенная запись, если не понятно - вот неупрощенный код*/ var result = summa(sa,sha); document.write(result); </script>

Итак, - мы знаем как создать и применить в скрипте функции. Давайте научимся вызывать их с помощью кнопки на страничке. Для этого достаточно у параметра href вместо адреса прописать такой код:

 

javascript:имя функции(/*и если нужно - то здесь можно прописать и её параметры*/);

 

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

<html> <head> <title>Сумма</title> <script type="text/javascript"> var sa = 100; var sha = 1; function summa (a,b) { var sum = a + b; return(sum); } function wivodNaDispley() { document.write(summa(sa,sha)); } </script> </head> <body> <h3 align="center"><a href="javascript:wivodNaDispley();">Вычислить</a></h3> </body> </html>

 

Объекты, свойства и методы

Основные понятия

Как уже отмечалось выше, JavaScript — это язык программирования, основанный на объектах. Все объекты, доступные сценарию на языке JavaScript, подразделяются на три группы:

· встроенные объекты исполняющей системы;

· объекты среды, в которой исполняется сценарий (т. е. либо объекты клиента, либо объекты сервера);

· пользовательские объекты, создаваемые сценарием в процессе его выполнения.

 

 

Пример встроенного объекта Date

 

<HTML> <HEAD> <TITLE>Текущая дата и время</TITLE> </HEAD> <BODY BGCOLOR=WHITE> <H1>Show date and time</H1> <SCRIPT LANGUAGE="JavaScript"> <!-- var szDate=""; var dt; dt = new Date(); szDate = "Дата: " + dt.getDate() + "." + dt.getMonth() + "." + dt.getYear(); document.write(szDate); document.write("<BR>"); document.write("Время: " + dt.getHours() + ":" + dt.getMinutes() + ":" + dt.getSeconds()); // --> </SCRIPT> </BODY></HTML>

Здесь сценарий JavaScript создает объект Data, применяя для этого ключевое слово new, знакомое из языка С++, и конструктор Date без параметров:

var dt;dt = new Date();

Создаваемый таким образом объект Data инициализируется текущей локальной датой, установленной у пользователя (а не на сервере Web, с которого был загружен соответствующий документ HTML).

В следующей строке формируется текстовая строка даты:

szDate = "Date: " + dt.getDate() + "." + dt.getMonth() + "." + dt.getYear();

Значение календарного числа, номера месяца и года здесь получается при помощи методов getDate, getMonth и getYear, соответственно. Эти методы вызываются для объекта dt, содержащего текущую дату.

Текстовая строка даты выводится в документ HTML с помощью метода write, определенного в объекте document:

document.write(szDate);

Заметим, что объект Date содержит также информацию о текущем времени. Эта информация извлекается для отображения с помощью методов getHours, getMinutes и getSeconds (соответственно, часы, минуты и секунды):

document.write("Time: " + dt.getHours() + ":" + dt.getMinutes() + ":" + dt.getSeconds());

Объект JavaScript

Объект JavaScript — это неупорядоченный набор свойств. Свойство, являющееся функцией, называется методом. Для доступа к свойству объекта используется синтаксис:

имя_объекта. имя_свойства

Если название свойства задано текстовой строкой, то доступ к свойству возможен и так:

имя_объекта [ "имя_свойства" ]

Этот синтаксис используется оператором итерации for…in.

Каждое свойство состоит из названия, значения и набора следующих атрибутов:

Атрибут Описание
DontEnum Свойство не должно попадать в перечисление при итерации объекта оператором for…in.
DontDelete Попытка программно удалить данное свойство будет проигнорирована. См. описание операции delete.
ReadOnly Неизменяемое свойство. Попытка программно изменить данное свойство будет проигнорирована. (Отметим, что в некоторых случаях значение свойства с этим атрибутом может быть изменено через внешнюю среду.)

Новое свойство объекта создается просто присваиванием ему значения. Пусть, например, мы уже создали объект myBrowser , который должен описывать наш Веб-обозреватель. Это описание будет состоять из названия обозревателя ( name ) и его версии ( version ). Для создания указанных свойств мы должны включить в сценарий следующие строки:

myBrowser.name = "Microsoft Internet Explorer";myBrowser.version = "5.5";

У таких свойств, созданным пользователем, все перечисленные выше атрибуты сброшены в false. В дальнейшем мы можем изменять значения этих свойств или извлекать их, например:

document.write(myBrowser.name, myBrowser.version);

Существует два способа создания новых объектов в JavaScript, а именно:

  1. Использование инициализатора объекта.
  2. Использование конструктора объектов.

 

 

Создание объектов с помощью инициализатора

Этот способ позволяет одновременно создать объект и присвоить значения всем или части его свойств. Он применяется в тех случаях, когда мы создаем объект с уникальным набором свойств. Инициализатор объекта имеет вид:

{ свойство: значение [, свойство: значение ]}

Здесь свойство — идентификатор, задающий имя свойства, а значение — выражение, задающее значение этого свойства.

Например, объект myBrowser из предыдущего примера может быть создан так:

var myBrowser = {name: "Microsoft Internet Explorer", version: "5.5"};

Усложним этот пример, добавив еще одно свойство объекта myBrowser , которое называется options (опции обозревателя) и само является объектом:

var myBrowser = {name: "Microsoft Internet Explorer", version: "5.5", options: {enableJava: true, enableCookies: false}};

Создание объектов с помощью конструктора

Этот способ применяется в тех случаях, когда мы хотим создать класс объектов с определенным набором свойств, а затем создавать новые объекты, просто указывая, к какому классу они должны принадлежать. Для этого нужно сначала создать конструктор объектов, который является функцией специального вида, а именно:

  • имя функции задает имя создаваемого класса объектов;
  • тело функции должно содержать присваивание начальных значений свойствам и методам создаваемого объекта.

Например, конструктор для класса объектов Browser из предыдущего примера может иметь следующий вид:

function Browser(name, version) { this.name = name; this.version = version;}

Обратите внимание на использование операции this для доступа к свойствам объекта. Теперь для создания новых объектов класса Browser достаточно вызвать этот конструктор в операции new, например:

var myBrowser = new Browser("Microsoft Internet Explorer", "5.5");

Вспомним теперь, что выше мы добавили свойство options объекта Browser, которое само является объектом. Перепишем приведенный пример с учетом этого свойства:

function Options(enableJava, enableCookies) { this.enableJava = enableJava; this.enableCookies = enableCookies;}function Browser(name, version) { this.name = name; this.version = version; this.options = options;}var myOptions = new Options(true, false);var myBrowser = new Browser("Microsoft Internet Explorer", "5.5", myOptions);

Для доступа к свойствам свойства options используется нотация



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: