Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

Объектная модель JavaScript

div.main {margin-left: 20pt; margin-right: 20pt} Объектная модель JavaScript

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

В дополнение к объектам, которые сформированы в Navigator client и LiveWire server, вы можете определять ваши собственные объекты. Объекты и Свойства Функции и Методы Создание Новых Объектов Объекты и Свойства

Объект JavaScript имеет свойства ассоциированные с ним. Вы обращаетесь к свойствам объекта следующей простой системой обозначений: objectName.propertyName

И имя объекта и имя свойства чувствительны к регистру. Вы определяете свойства, приписывая значение. Например, пусть существует объект, с именем myCar (мы обсудим, как создавать объекты позже - теперь, только принимаем, что объект уже существует). Вы можете дать свойства, именованные make , model , и year следующим образом: myCar.make = "Ford" myCar.model = "Mustang" myCar.year = 69;

Вы можете также обратиться к этим свойствам, используя систему обозначений таблицы следующим образом: mycar["make"] = "Ford myCar["model"] = "Mustang" myCar["year"] = 69;

Этот тип таблицы известен как ассоциативная таблица, потому что каждый элемент индекса также связан со значением строки. Чтобы пояснять, как это делается, следующая функция показывает свойство объекта, когда вы проходите объект и имя объекта как аргументы функции: function show_props(obj, obj_name) { var result = "" for (var i in obj) result += obj_name + "." + i + " = " + obj[i] + "n" return result; }

Так, обращение к функции show_props(myCar, "myCar") возвращает следующее:

Вы можете также определять свойства, используя порядковые числа, например: temp[0] = 34 temp[1] = 42 temp[2] = 56 Эти утверждения создают три свойства объекта temp, и вы должны обращаться к этим свойствам как temp[i], где i - целое число между 0 и 2. Функции и Методы

Функции - один из фундаментальных встроенных блоков в JavaScript. Функция - JavaScript процедура - набор утверждений, которые выполняют определенную задачу.

Определение функции состоит из ключевого слова function , сопровождаемого Именем функции Списком аргументов функции, приложенной в круглых скобках, и отделяемые запятыми JavaScript утверждениями, которые определяют функцию, приложенные в фигурных скобках, {...}

Вы можете использовать любые функции, определенные в текущей странице. Лучше всего определять все ваши функции в HEAD страницы. Когда пользователь загружает страницу, сначала загружаются функции.

Утверждения в функциях могут включать другие обращения к функции.

Например, есть функция с именем pretty_print: function pretty_print(string) { document.write(" " + string) }

Эта функция принимает строку как аргумент, прибавляет некоторые теге HTML, используя оператор суммы (+), затем показывает результат в текущем документу.

Определение функции не выполняет ее. Для этого вы должны вызвать функцию, чтобы выполнить ее. Например, вы можете вызывать функцию pretty_print следующим образом: pretty_print("This is some text to display")

Аргументы функции не ограничены только строками и числами.

Аргументы функции сохраняются в таблице. Внутри функции, вы можете адресовать параметры следующим образом: functionName.arguments [i] Где functionName - имя функции, и i - порядковое число аргумента, начинающегося с нуля. Так, первый аргумент в функции, с именем myfunc, будет myfunc.arguments [0]. Общее число аргументов обозначено переменным arguments.length.

Функция может даже быть рекурсивной, то есть она может вызывать себя. Например, существует функция, которая вычисляет факториалы: function factorial(n) { if ((n == 0) || (n == 1)) return 1 else { result = (n * factorial(n-1) ) return result } }

Вы можете показывать факториалы от одного до пять следующим образом: for (x = 0; x < 5; x++) { document.write(x, " factorial is ", factorial(x)) document.write(" ") }

Результаты будут бы следующие: Функции с Переменными Числовыми Аргументами

Вы можете вызывать, функция с большим количеством аргументов чем она формально объявлена, используя массив arguments . Это часто полезно тогда, когда вы не знаете заранее, сколько аргументов будут в функции. Вы можете использовать arguments.length, чтобы определить число аргументов в функции, и затем обращаться к каждому аргументу, используя массив arguments .

Например, рассмотрим функцию, определенную, чтобы создать списки HTML. Единственый формальный аргумент функции - строка, которая является "U", если список неупорядочен или "O", если список упорядочен (пронумерован). Функция определена следующим образом: function list(type) { document.write("") //начинается список for (var i = 1; i < list.arguments.length; i++) // Повторить через аргументы document.write("" + list.arguments[i]) document.write("") // заканчивается список }

Вы можете проходить любое число аргументов этой функции, и затем показывать каждый аргумент как каждый отдельный пункт в обозначенном типе списка. Например, следующий запрос на функцию: list("o", "one", 1967, "three", "etc, etc...") Определение Методов

Метод - функция, связанная с объектом. Вы определяете метод таким же образом, так как вы определяете стандартную функцию. Затем, используйте следующий синтаксис, чтобы связать функцию с существующим бъектом: object.methodname = function_name Где object - существующий объект, methodname - имя, которое вы присваиваете методу, и function_name - имя функции.

Вы можете вызывать метод в контексте объекта следующим образом: object.methodname (params); Использование this для Ссылок Объекта

JavaScript имеет специальное ключевое слово, this, которое вы можете использовать, чтобы обращаться к текущему объекту. Например, пусть у вас есть функция с именем validate , которая проверяет правильность свойства значения объекта, данного объект, и high и low значения: function validate(obj, lowval, hival) { if ((obj.value < lowval) || (obj.value > hival)) alert("Invalid Value!") }

Вы можете вызывать validate в каждом элементе формы обработчика событий onChange, используя this, как показано в следующем примере:

Вообще, метод this обращается к вызывающему объекту. Создание Новых Объектов

И клиент и сервер JavaScript имеют строки предопределенных объектов. Кроме того, вы можете создавать ваши собственные объекты. Создание вашего собственного объекта требует двух шагов: Определить тип объекта, написанной функции. Создать образец объекта с new.

Чтобы определять тип объекта, создайте функцию для типа объекта, которая определяет его имя, и его свойства и методы. Например, пусть вы хотите создавать тип объекта для автомобилей. Вы хотите этот тип объектов, который будет назван car, и Вы хотите, чтобы он имел свойства для make, model, year, и color. Чтобы сделать это, вы должны написать следующую функцию: function car(make, model, year) { this.make = make; this.model = model; this.year = year; }

Замечание, используйте this, чтобы присвоить значения свойствам объекта, основанные на значениях функции.

Теперь вы можете создавать объект, с именем mycar следующим образом: mycar = new car("Eagle", "Talon TSi", 1993);

Это утверждение создает mycar и присваивает ему указанные значения для его свойств. Затем значение mycar.make - строка "Eagle", mycar.year - целое число 1993, и так далее.

Вы можете создавать любое число объектов car запрашивая к new. Например, kenscar = new car("Nissan", "300ZX", 1992)

Объект может иметь свойство, которое является самостоятельным другим объектом. Например, пусть вы определили объект с именем person следующим образом: function person(name, age, sex) { this.name = name; this.age = age; this.sex = sex; }

И затем подтверждаете два новых объектов person следующим образом: rand = new person("Rand McNally", 33, "M") ken = new person("Ken Jones", 39, "M")

Затем вы можете перезаписать определение car, чтобы включить свойство владельца, которое берет объект person, следующим образом: function car(make, model, year, owner) { this.make = make; this.model = model; this.year = year; this.owner = owner; }

Затем вы используете следующее: car1 = new car("Eagle", "Talon TSi", 1993, rand); car2 = new car("Nissan", "300ZX", 1992, ken)

Заметим, что вместо прохождения строкового литерала или целого числа вычисляет при создании новых объектов, вышеупомянутый ход утверждений объектов rand и ken как аргументов владельцев. Затем, если вы хотите выяснять имя владельца car2, вы можете обращаться к следующему свойству: car2.owner.name

Заметьте, что вы можете всегда прибавлять свойства к предопределенному объекту. Например, утверждение: car1.color = "black" Прибавляет свойство color к car1, и присваивает ему значение " black". Однако, это не воздействует на любые другие объекты. Чтобы прибавить новое свойство ко всем объектам того же самого типа, вы должны прибавить свойство к определению типа объекта car. Определение Методов

Вы можете определять методы для типа объекта включением определение метода на определении типа объекта. Например, пусть у вас есть набор файлов изображений GIF, и вы хотите определить метод, который показывает информацию для car, наряду с соответствующим изображением. Вы можете определить функцию типа: function displayCar() { var result = "A Beautiful " + this.year + " " + this.make + " " + this.model; pretty_print(result) } Где pretty_print - предопределенная функция, которая показывает строку. Используйте this, чтобы обратиться к объекту, который принадлежит методу.

Вы можете делать функцию методом из car, прибавляя утверждение This.displayCar = displayCar; к определению объекта. Так, полное определение car теперь выглядит так: function car(make, model, year, owner) { this.make = make; this.model = model; this.year = year; this.owner = owner; this.displayCar = displayCar; }

Вы можете вызывать этот новый метод следующим образом: car1.displayCar () car2.displayCar () Это будет выглядеть подобно следующему выводу:

A Beautiful 1993 Eagle Talon TSi

A Beautiful 1992 Nissan 300ZX


  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте