Смена контекста this у функции/метода
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

function raiseSalary(addition, factor) {

this.salary = addition + this.salary * factor;

}

var petrov = {position: "Salesman", salary: 1000};

var president = {name: "King", salary: 5000};

raiseSalary.call(petrov, 100, 1.1);

raiseSalary.apply(president, [0, 1.2]);

Пользовательские массивы

• Одномерные

l Но можно создать массив массивов, в т.ч. непрямоугольный.

l Обращение по индексу с помощью оператора [].

l Нумерация элементов с 0.

l Есть поле length, хранящее количество элементов.

• Способы создания

l Пустоймассив
var a1 = new Array();

l Массив с заданным количеством элементов
vara 2 = newArray (10);

l Массив с заданными элементами
vara 3 = newArray (10, "и это не длина", 5.5, '!');

l Литеральная форма с заданными элементами
vara 4 = [10, "и это не длина", 5.5, '!'];

• Динамические

l Изменение значения length

l Добавление новых элементов

l Явно не указанные элементы получают значение undefined





Пример 39.

<script>

var a = [1, 2];

a[5] = 5;

document.write(a[4] + "<br/>");

document.write(a[5] + "<br/>");

a.length = 2;

a.length = 5;

document.write(a[4] + "<br/>");

document.write(a[5] + "<br/>");

</script>

Сортировка пользовательских массивов

• Выполняется с помощью метода sort() массива.

• По умолчанию – это сортировка в лексикографическом порядке.

• Если требуется другой порядок, то следует задать свой критерий сравнения в виде функции.

Пример 40

<script>

var a = [1, 2, 15, 23];

a.sort();

document.write(a + "<br/>"); // 1,15,2,23

 function compareNumeric(a, b) {

return a - b;

}

a.sort(compareNumeric);

document.write(a + "<br/>"); // 1,2,15,23

</script>

Дополнительные методы пользовательских массивов

Инвертирование порядка элементов reverse()
Добавление элемента в конец push(element)
Удаление элемента из конца pop()
Добавление элемента в начало unshift(element)
Удаление элемента из начала shift()
Объединение в строку с указанием разделителя join(separator)
Удаление и вставка элементов splice(start, [deleteCount, add1, ..., addN])
Копирование части массива slice(begin, end)

Пример 41

<html>

<body>

<script>

var a = [1, 2, 15, 23];

a.reverse();

document.write(a + "<br/>"); // 23,15,2,1

a.push(" добавка 1");

document.write(a + "<br/>"); // 23,15,2,1, добавка 1

a.pop();

document.write(a + "<br/>"); // 23,15,2,1

a.unshift(" добавка 2");

document.write(a + "<br/>"); // добавка 2,23,15,2,1

a.shift();

document.write(a + "<br/>"); // 23,15,2,1

//...

// ...

var str = a.join("; ");

document.write(str + "<br/>"); // 23; 15; 2; 1

var b = str.split("; ");

document.write(b + "<br/>"); // 23,15,2,1

a.splice(2, 1, " Замена ");

document.write(a + "<br/>"); // 23,15, Замена ,1

var c = a.slice(1, a.length);

c [0] = "И что будет?";

document . write ( a + "< br />"); // 23,15,Замена,1

document . write ( c + "< br />"); // И что будет?,Замена,1

</script>

</body>

</html>

Виды объектов

• Встроенные

l По сути – библиотеки и базовые объекты

• Пользовательские

l Всё, что создаёт пользователь-программист

• Серверные

l Определяют и предоставляют взаимодействие с сервером

• Клиентские

l Определяют и предоставляют взаимодействие с браузером и документом

BOM и DOM

• Browser Object Model

l Объектная модель для взаимодействия с браузером

l В настоящий момент не стандартизована

l Базовый объект – window

• Document Object Model

l Объектная модель для взаимодействия с документом

l В целом стандартизирована

l Базовый объект – document

Объект window

• Глобальный объект.

• Все объявляемые переменные и объекты становятся его свойствами.

• Содержит либо напрямую информацию о документе, либо ассоциированный массив (карт, map) фреймов (frames).

• Имеет свои свойства, методы и события.

Пример 42. Взаимодействие с пользователем

// Окно с сообщением

alert("Случилось страшное!!!");

// Окно с запросом на подтверждение

// Возвращает true или false

confirm("Хотите поговорить об этом?..");

// Окно со вводом строки

// Возвращает введённую строку

prompt("Вам слово!", "говорите сюда");

Дата: 2019-02-19, просмотров: 235.