Назад Оглавление Индекс Вперёд |
Ядро JavaScript 1.5. Руководство по Использованию. |
JavaScript разработан с использованием простой объектно-ориентированной парадигмы. Объект - это конструкция со свойствами, которые являются переменными JavaScript или другими объектами. Объект также может иметь ассоциированные с ним функции, которые известны как методы объекта. В дополнение к имеющимся в Navigator клиентским и серверным объектам Вы можете определять свои собственные объекты.
В этой главе рассматривается использование объектов, их
свойств, функций и методов и создание собственных объектов.
Объект в JavaScript имеет ассоциированные с ним свойства. Вы получаете доступ к свойству очень просто:
И имя объекта, и имя свойства чувствительны к регистру. Вы
определяете свойство, присваивая ему значение. Например, предположим, имеется
объект myCar (начиная отсюда, примем для удобства, что объект уже существует).
Вы можете создать свойства make, model и year таким образом:
myCar.make = "Ford";
myCar.model = "Mustang";
myCar.year = 1969;
Массив является упорядоченным набором значений,
ассоциированных с именем одной переменной. Свойства и массивы JavaScript очень
тесно связаны; фактически они являются разными интерфейсами для одной и той же
структуры данных. Так, например, Вы можете получить доступ к свойствам объекта myCar:
myCar["make"] = "Ford"
myCar["model"] = "Mustang"
myCar["year"] = 1967
Этот тип массива известен как ассоциативный массив,
поскольку каждый элемент индекса ассоциирован также со строковым значением.
Следующая функция отображает свойства и имя объекта как аргументы функции:
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") вернёт:
myCar.make = Ford
myCar.model = Mustang
myCar.year = 1967
В JavaScript есть несколько предопределённых объектов. Кроме того, Вы можете создать Ваши собственные объекты. В JavaScript 1.2 и позднее Вы можете создать объект, используя инициализатор объекта. Альтернативно, Вы можете сначала создать конструктор функции, а затем - инстанциировать объект (создать экземпляр), используя эту функцию и оператор new.
Помимо создания объектов с использованием конструктора функции, Вы можете создать объекты, используя инициализаторы объектов. Использование инициализаторов иногда называется созданием объектов в литеральной нотации. "Инициализатор Объекта" следует терминологии C++.
Синтаксис объекта, использующего инициализатор, таков:
объектаИмя = {свойство1:значение1, свойство2:значение2,..., свойствоN:значениеN}
где объектаИмя это имя нового объекта, каждое свойствоI
является идентификатором (именем, числом или строковым литералом), а каждое
значениеI является выражением, значение которого присваивается свойствуI.
объектаИмя и присвоение являются необязательными. Если Вам не нужно ссылаться
где-либо на этот объект, то нет необходимости присваивать его переменной.
Если объект создаётся инициализатором в скрипте верхнего
уровня, JavaScript интерпретирует этот объект каждый раз при вычислении
выражения, содержащего литерал объекта. Кроме того, инициализатор, используемый в функции, создаётся каждый раз при вызове функции.
Следующий оператор создаёт объект и присваивает его
переменной x, если, и только если, выражение cond будет true:
Следующий пример создаёт myHonda с тремя свойствами.
Обратите внимание, что свойство engine также является объектом со своими собственными свойствами.
myHonda = {color:"red",wheels:4,engine:{cylinders:4,size:2.2}}
Вы можете также использовать инициализаторы объектов для
создания массивов. См. "Литералы Массива".
Вы не можете использовать инициализаторы объектов. Можно создать объекты только с помощью конструкторов функций или используя функцию, предоставляемую для этих целей каким-нибудь другим объектом. См. Использование Конструктора Функции.
Альтернативно Вы можете создать объект в два этапа:
Чтобы определить тип объекта, создайте функцию для типа объекта, которая
специфицирует его имя , свойства и методы. Например, предположим, Вы хотите
создать тип объекта для автомобилей и назвать его 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);
vpgscar = new car("Mazda", "Miata", 1990);
Объект может иметь свойство, которое само является
объектом. Например, предположим, Вы определяете объект person:
function person(name, age, sex) {
this.name = name
this.age = age
this.sex = sex
}
и затем инстанциируете два новых объекта person:
rand = new person("Rand McKinnon", 33, "M");
ken = new person("Ken Jones", 39, "M");
Затем Вы можете переписать определение car, чтобы включить
свойство owner, принимаемое объектом 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 как аргументы свойства owner. Теперь, чтобы
определить имя владельца машины car2, Вы осуществляете доступ к свойству:
Заметьте, что таким образом Вы всегда добавляете свойство
к ранее определённому объекту. Например, оператор
добавляет свойство color объекту car1 и присваивает ему
значение "black." Однако это не влияет на другие объекты. Чтобы добавить новое
свойство ко всем объектам того же типа, Вы должны добавить свойство в
определение типа объекта car.
В JavaScript 1.0 Вы можете ссылаться на свойства объектов по имени свойства или по порядковому индексу. В JavaScript 1.1 и позднее, однако, если Вы первоначально определили свойство по имени, Вы всегда обязаны будете обращаться к нему по имени, и, если Вы первоначально определили свойство по индексу, Вы всегда обязаны будете обращаться к нему по его индексу.
Это применимо при создании объекта и его свойств с помощью
конструктора функции, как в примере с типом объекта Car, и если Вы определяете
отдельные свойства явным образом (например, myCar.color = "red"). Так, если Вы
определили свойства объекта по индексу, как, например, myCar[5] = "25 mpg", Вы
можете затем обращаться к этому свойству только как myCar[5].
Исключением из этого правила являются объекты, отражённые
из HTML, такие как массивы форм. Вы всегда обращаетесь к этим объектам по
порядковому номеру (зависящим от местонахождения объекта в документе) или по их
именам (если они определены). Например, если второй тэг <FORM> в документе
имеет в атрибуте NAME значение "myForm", Вы можете ссылаться на форму document.forms[1],
или document.forms["myForm"] или document.myForm.
Вы можете добавлять свойство к ранее определённому типу объекта через использование свойства prototype. Так определяется свойство, которое совместно используется всеми объектами специфицированного типа, а не только одним данным экземпляром этого объекта. Следующий код добавляет свойство color ко всем объекта типа car, а затем присваивает значение свойству color объекта car1.
Car.prototype.color=null;
car1.color="black";
См. дополнительную информацию о свойстве prototype объекта Function в книге
Ядро JavaScript. Справочник.
Метод это функция, ассоциированная с объектом. Метод определяется так же, как стандартная функция. Затем используется следующий синтаксис для ассоциирования функции с уже существующим объектом:
object.methodname = function_name
где object это существующий объект, methodname это имя
определяемого Вами метода, а function_name имя функции.
Вы затем вызываете метод в контексте объекта:
Вы можете также определить методы для типа объекта,
включив определение метода в конструктор функции. Можно определить
функцию, которая форматирует и отображает свойства ранее определённых car-объектов; например,
function displayCar() {
var result = "A Beautiful " + this.year + " " + this.make
+ " " + this.model;
pretty_print(result);
}
где pretty_print это функция для отображения
горизонтальной линии и строки. Обратите внимание на использование this для
ссылки на объект, которому принадлежат методы.
Можно сделать эту функцию методом в car, добавив оператор:
к определению объекта. Так полное определение car будет выглядеть теперь:
function car(make, model, year, owner) {
this.make = make;
this.model = model;
this.year = year;
this.owner = owner;
this.displayCar = displayCar;
}
Теперь Вы можете вызвать метод displayCar в каждом экземпляре:
car1.displayCar()
car2.displayCar()
Это даст результат, показанный на рисунке.
JavaScript имеет специальное ключевое слово this, которое
может использоваться внутри метода для ссылки на текущий объект. Например, если
у Вас имеется функция validate, проверяющая значение свойства объекта и значения high и low:
Getter это метод, получающий
значение отдельного свойства. Setter это метод,
устанавливающий значение отдельного свойства. Вы можете определить getter и
setter в любом предопределённом объекте ядра или в пользовательском объекте,
поддерживающем добавление новых свойств. Синтаксис определения getter и setter использует синтаксис литерала объекта. Вы можете удалить свойство оператором delete. Этот код показывает, как удалить свойство. См. "delete". В JavaScript нет отдельного типа для массива данных.
Однако Вы можете использовать предопределённый объект Array и его методы для
работы с массивами в Ваших приложениях. Объект Array имеет методы для
манипулирования массивами: объединения, разворачивания и сортировки. Он имеет
также свойство для определения размера массива и другие свойства для
использования с регулярными выражениями.
Вы можете заполнить массив путём присвоения значений его элементам. Например,
Вы можете обратиться к элементам массива через
использование порядкового номера элемента. Например, Вы определили массив: Array-объект имеет следующие методы:
Следующий код создаёт двухмерный массив:
Ели массив является результатом совпадения регулярного
выражения и строки, этот массив возвращает свойства и элементы, предоставляющие
информацию о совпадении. Массив является return-значением методов RegExp.exec, String.match
и String.split. Об использовании массивов с регулярными выражениями см.
Главу 4, "Регулярные Выражения". Объект Boolean является оболочкой вокруг примитивного типа
данных Boolean. Для создания Boolean-объекта используйте следующий синтаксис: В JavaScript нет типа данных data. Однако Вы можете
использовать для работы с датами и временем объект Date и его методы. Объект Date
имеет большое количество методов для установки, получения и манипулирования
датами. Он не имеет никаких свойств. Методы объекта Date для работы с датами и временем подразделяются на следующие категории:
В этом примере функция JSClock() возвращает время в
формате электронного циферблата:
Предопределённый объект Function специфицирует строку кода JavaScript,
которая компилируется как функция.
Предопределённый объект Math имеет свойства и объекты для
работы с математическими константами и функциями. Например, свойство PI объекта Math
имеет значение pi (3.141...), которое Вы можете использовать в приложении таким образом:
Объект Number содержит свойства для работы с числовыми
константами, такими как максимальное значение, not-a-number и infinity/бесконечность.
Вы не можете изменить значения этих свойств и будете использовать их таким образом: Объект RegExp позволяет работать с регулярными выражениями.
описан в Главе 4, "Регулярные Выражения." Объект String является оболочкой вокруг примитивного типа
данных string. Не путайте строковой литерал с объектом String. Например,
следующий код создаёт строковой литерал s1 и String-объект s2:
Рисунок 7.1 Отображение вывода метода
Использование Слова this для Ссылок на Объект
function validate(obj, lowval, hival) {
if ((obj.value < lowval) || (obj.value > hival))
alert("Invalid Value!")
}
то Вы можете вызвать validate в обработчике события onChange
любого элемента формы, используя this для передачи обработчику элемента формы,
как в этом примере:
<INPUT TYPE="text" NAME="age" SIZE=3
onChange="validate(this, 18, 99)">
В общем, this ссылается в методе на вызывающий объект.
В сочетании со свойством формы, this может обращаться к
родительской форме текущего объекта. В следующем примере форма myForm содержит Text-объект
и кнопку. Если пользователь щёлкает на кнопке, значением Text-объекта становится
имя формы. Обработчик нажатия кнопки onClick использует this.form для ссылки на родительскую форму, myForm.<FORM NAME="myForm">
Form name:<INPUT TYPE="text" NAME="text1" VALUE="Beluga">
<P>
<INPUT NAME="button1" TYPE="button" VALUE="Show Form Name"
onClick="this.form.text1.value=this.form.name">
</FORM>Определение Getter'ов и Setter'ов
Следующая сессия JS-оболочки иллюстрирует, как getter и
setter могут работать для определённого пользователем объекта o. JS-оболочка
является приложением, позволяющим разработчикам тестировать код JavaScript в
пакетном режиме или интерактивно.
Свойствами объекта о являются:
js> o = new Object;
[object Object]
js> o = {a:7, get b() {return this.a+1; }, set c(x) {this.a = x/2}};
[object Object]
js> o.a
7
js> o.b
8
js> o.c = 50
js> o.a
25
js>
Эта сессия JavaScript иллюстрирует то, как getter и setter могут расширять
прототип Date, добавляя свойство year ко всем экземплярам предопределённого
класса Date. Она использует существующие методы getFullYear и setFullYear класса Date
для поддержки getter и setter свойства year.
Эти операторы определяют getter и setter для свойства year:
js> var d = Date.prototype;
js> d.year getter= function() { return this.getFullYear(); };js> d.year setter= function(y) { return this.setFullYear(y); };
Следующие операторы используют getter и setter в Date-объекте:
js> var now = new Date;
js> print(now.year);
2000
js> now.year=2001;
987617605170
js> print(now);
Wed Apr 18 11:13:25 GMT-0700 (Pacific Daylight Time) 2001Удаление Свойств
//Создаётся новое свойство myobj с двумя свойствами a
и b.
myobj = new Object;
myobj.a=5;
myobj.b=12;
//Удаляется свойство a, и в myobj остаётся только свойство b.
delete myobj.a;
Можно также использовать delete для удаления глобальной
переменной, если ключевое слово var не было использовано при объявлении этой
переменной:
g = 17;
delete g;
Предопределённые Объекты Ядра
В этом разделе рассмотрены предопределённые объекты ядра JavaScript: Array, Boolean, Date, Function, Math, Number, RegExp
и String.Объект Array
Массив это упорядоченный набор значений, к которым
можно обращаться по имени и по индексу. Например, Вы имеете массив emp,
содержащий имена служащих, индексированный по именам служащих. Так, emp[1] это
служащий номер 1, emp[2] - служащий номер 2 и так далее.Создание Массива
1. arrayObjectName = new Array(element0, element1, ..., elementN)
2. arrayObjectName = new Array(arrayLength)
arrayObjectName это имя нового объекта, либо свойство
существующего объекта. При использовании Array-свойств и методов, arrayObjectName
это либо имя существующего Array-объекта, либо свойство существующего объекта.
element0, element1, ..., elementN это список
значений элементов массива. Когда специфицирована эта форма, массив
инициализируется специфицированными значениями в качестве элементов массива, а
свойство length массива устанавливается в количество аргументов.
arrayLength это начальный размер массива. Следующий код создаёт массив из 5 элементов:
Литералы массива также являются Array-объектами; например,
нижеследующий литерал является Array-объектом. См. "Литералы Массива".
coffees = ["French Roast", "Columbian", "Kona"]
Наполнение Массива
emp[1] = "Casey Jones"
emp[2] = "Phil Lesh"
emp[3] = "August West"
Вы можете также заполнить массив при его создании:
myArray = new Array("Hello", myVar, 3.14159)
Обращение к Элементам Массива
myArray = new Array("Wind","Rain","Fire")
Затем Вы обращаетесь к первому элементу массива myArray[0],
а ко второму элементу - myArray[1].
Индексы элементов начинаются с нуля (0), но размер массива (например, myArray.length)
отражает точное количество элементов в массиве.Array-Методы
Например, Вы определили следующий массив:
myArray = new Array("Wind","Rain","Fire")
myArray.join() возвращает "Wind,Rain,Fire";
myArray.reverse переворачивает массив так, что myArray[0] будет "Fire", myArray[1]
- "Rain", а myArray[2] - "Wind".
myArray.sort сортирует массив так, что myArray[0] будет "Fire", myArray[1] - "Rain",
в myArray[2] - "Wind".Двухмерные Массивы
a = new Array(4)
for (i=0; i < 4; i++) {
a[i] = new Array(4)
for (j=0; j < 4; j++) {
a[i][j] = "["+i+","+j+"]"
}
}
Создаётся массив, состоящий из следующих рядов/rows:
Row 0:[0,0][0,1][0,2][0,3]
Row 1:[1,0][1,1][1,2][1,3]
Row 2:[2,0][2,1][2,2][2,3]
Row 3:[3,0][3,1][3,2][3,3]
Массивы и Регулярные Выражения
Объект Boolean
booleanObjectName = new Boolean(value)
Не путайте примитивные Boolean-значения true и false со
значениями true и false Boolean-объекта. Любой объект, значение которого не undefined , null,
0, NaN или не пустая строка, включая Boolean-объект со значением false,
вычисляется в true при передаче условному оператору. См. "Оператор if...else".Объект Date
JavaScript обрабатывает даты аналогично Java. Эти два
языка имеют много аналогичных date-методов и оба хранят даты как количество
миллисекунд, прошедших после 1 января 1970 года, 00:00:00.
Объект Date имеет диапазон значений от -100,000,000 до 100,000,000
дней в обе стороны от 01 января 1970 года UTC (Всемирного Времени).
dateObjectName = new Date([parameters])
где dateObjectName это имя создаваемого Date-объекта; это
может быть новый объект или свойство существующего объекта.
Параметры/parameters в этом синтаксисе могут быть:
JavaScript 1.2 и ранее.
Объект Date ведёт себя так:
Методы Объекта Date
С помощью методов "get" и "set" Вы можете по
отдельности получать и устанавливать значения секунд, минут, часа, дня месяца,
дня недели, месяца и года. Имеется метод getDay, возвращающий день недели, но
отсутствует парный метод setDay, поскольку день недели устанавливается
автоматически. Эти методы используют целые числа для представления своих значений:
Например, Вы определили следующую дату:Xmas95 = new Date("December 25, 1995")
Тогда Xmas95.getMonth() возвратит 11, а Xmas95.getFullYear() возвратит 1995.
Методы getTime и setTime используются при сравнении дат.
Метод getTime возвращает количество миллисекунд, прошедших после 1 января 1970
года, 00:00:00, для Date-объекта.
Например, следующий код выводит количество дней, оставшихся до конца текущего года:
today = new Date()
endYear = new Date(1995,11,31,23,59,59,999) // Устанавливает день и месяц
endYear.setFullYear(today.getFullYear()) // Устанавливает год в текущее значение
msPerDay = 24 * 60 * 60 * 1000 // Количество миллисекунд в день
daysLeft = (endYear.getTime() - today.getTime()) / msPerDay
daysLeft = Math.round(daysLeft) //возвращает количество оставшихся в этом году дней
Этот пример создаёт Date-объект по имени today, содержащий
текущую дату. Затем создаётся Date-объект endYear и в него устанавливается
текущее значение года. Затем, путём использования количества миллисекунд в день,
вычисляется количество дней от сегодняшнего числа до до endYear через
использование метода getTime и оно округляется до целого количества дней.
Метод parse применяется для присвоения значений date-строк
существующим Date-объектам. Например, следующий код использует методы parse и setTime
для присвоения значения даты объекту IPOdate:
IPOdate = new Date()
IPOdate.setTime(Date.parse("Aug 9, 1995"))Использование Объекта Date: Пример
function JSClock() {
var time = new Date()
var hour = time.getHours()
var minute = time.getMinutes()
var second = time.getSeconds()
var temp = "" + ((hour > 12) ? hour - 12 : hour)
if (hour == 0)
temp = "12";
temp += ((minute < 10) ? ":0" : ":") + minute
temp += ((second < 10) ? ":0" : ":") + second
temp += (hour >= 12) ? " P.M." : " A.M."
return temp
}
Функция JSClock сначала создаёт новый Date-объект time;
поскольку аргументы не заданы, time создаётся с текущими датой и временем. Затем
вызываются методы getHours, getMinutes и getSeconds, присваивающие текущие
значения часа, минут и секунд переменным hour, minute и second.
Следующие 4 оператора строят строковое значение на базе time.
Первый оператор создаёт переменную temp, присваивая её значение путём
использования условного выражения; если hour больше 12, (hour - 12), иначе
просто hour, если только hour не 0, тогда он становится 12.
Следующий оператор присоединяет значение minute к temp.
Если значение minute меньше 10, условное выражение прибавляет строку с
предшествующим нулём; иначе добавляется строка с разделяющим двоеточием. Затем
оператор присоединяет второе значение к temp тем же способом.
Наконец, условное выражение присоединяет "PM" к temp, если hour
равен 12 или больше; иначе присоединяется "AM".Объект Function
Создание Function-объекта:
functionObjectName = new Function ([arg1, arg2, ... argn], functionBody)
functionObjectName это имя переменной или свойства
существующего объекта. Это также может быть объект с последующим именем
обработчика события, в нижнем регистре, таким как window.onerror.
arg1, arg2, ... argn это аргументы, используемые функцией
в качестве имён формальных аргументов. Каждый обязан быть строкой,
соответствующей верному идентификатору JavaScript; например, "x" или "theForm".
functionBody это строка, специфицирующая код JavaScript, компилируемый как тело функции.
Function-объекты вычисляются всякий раз при их
использовании. Это менее эффективно, чем объявление функции и вызов её в коде,
поскольку объявленные функции компилируются.
Дополнительно Вы можете также использовать оператор function
и выражение function. См. книгу Ядро JavaScript. Справочник.
Следующий код присваивает функцию переменной setBGColor.
Эта функция устанавливает цвет фона документа.
var setBGColor = new Function("document.bgColor='antiquewhite'")
Чтобы вызвать Function-объект, Вы можете специфицировать
имя переменной так, будто это функция. Следующий код выполняет функцию, специфицированную переменной setBGColor:var colorChoice="antiquewhite"
if (colorChoice=="antiquewhite") {setBGColor()}
Вы можете назначить функцию обработчику события одним из следующих способов:1. document.form1.colorButton.onclick=setBGColor
2. <INPUT NAME="colorButton" TYPE="button"
VALUE="Change background color"
onClick="setBGColor()">
Создание переменной setBGColor, показанное выше, аналогично объявлению следующей функции:function setBGColor() {
document.bgColor='antiquewhite'
}
Присвоение функции переменной похоже на объявление функции, но есть и отличия:
Вы можете вложить одну функцию в другую. Вложенная (внутренняя) функция является private
для своего контейнера (внешней функции):
Объект Math
Аналогично и стандартные математические функции являются
методами объекта Math. Сюда входят тригонометрические, логарифмические,
экспоненциальные и другие функции. Например, Если Вы хотите использовать
тригонометрическую функцию sine/синус, Вы можете записать:
Заметьте, что все тригонометрические методы объекта Math принимают аргументы в радианах.
В таблице содержится резюме по методам объекта Math.Таблица 7.1   Методы Объекта Math
В отличие от многих других объектов, объект Math никогда
не может быть создан внутри себя. Вы всегда используете предопределённый объект Math.Объект Number
biggestNum = Number.MAX_VALUE
smallestNum = Number.MIN_VALUE
infiniteNum = Number.POSITIVE_INFINITY
negInfiniteNum = Number.NEGATIVE_INFINITY
notANum = Number.NaN
Вы всегда обращаетесь к свойствам предопределённого
объекта Number так, как показано выше, а не как к свойствам Number-объекта, созданного Вами.
В таблице дано резюме по свойствам объекта Number.
Прототип Number предоставляет методы для запроса
информации от Number-объектов в разных форматах. В следующей таблице дано резюме по методам Number.prototype.Объект RegExp
Объект String
s1 = "foo" //создаётся строковое литеральное значение
s2 = new String("foo") //создаётся String-объект
Вы можете вызвать любой из методов объекта String в
строковом литеральном значении - JavaScript автоматически конвертирует строковой
литерал во временный String-объект, вызывает метод, затем уничтожает временный String-объект.
Вы можете также использовать со строковым литералом свойство String.length.
Вы, как правило, должны использовать строковые литералы,
если только Вам не нужно использовать именно String-объект, так как String-объекты
могут иметь непредсказуемое поведение. Например:
s1 = "2 + 2" //строковое литеральное значение
s2 = new String("2 + 2")//String-объект
eval(s1) //возвращает число 4
eval(s2) //возвращает строку "2 + 2"
Объект String имеет только одно свойство, length, которое
обозначает количество символов в строке. Например, следующий код присваивает
переменной x значение 13, так как строка "Hello, World!" содержит 13 символов:
myString = "Hello, World!"
x = mystring.length
Объект String имеет методы двух типов: возвращающие
варианты самой строки, такие методы как substring и toUpperCase, и методы,
которые возвращают HTML-форматированную версию строки, такие методы как bold и link.
Например, используя предыдущий пример, и mystring.toUpperCase(),
и "hello, world!".toUpperCase() возвращают строку "HELLO, WORLD!"
Метод substring принимает два аргумента и возвращает
подстроку между двумя аргументами. Используя предыдущий пример, mystring.substring(4, 9)
возвращает строку "o, Wo". См. метод substring объекта String в книге
Ядро JavaScript. Справочник.
Объект String имеет также несколько методов для
автоматического HTML-форматирования, такие как bold - для создания текста с
"жирным" шрифтом и link - для создания гиперссылки. Например, Вы можете создать
гиперссылку на гипотетический URL методом link:
mystring.link("http://www.helloworld.com")
В таблице дано резюме по методам String-экземпляров.
Назад
Оглавление
Индекс Вперёд