Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_pechatat (1).docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
400.16 Кб
Скачать

15. Объекты js. Понятие объекта. Виды объектов. Создание пользовательских объектов js, и работа с ним.

Объект в JS -это коллекция свойств, состоящая из пар ключ-значение. Причем ключом мб только строка (даже у эл2ементов массива), а вот значением - любой тип данных.

Object не примитивный тип данных. Можно считать, что у типа Object есть «подтипы»: массив (Array), функция (Function), регулярное выражение (RegExp).

Т.е. строку 'Hello, world' можно создать и как примитивное значение, и как объект типа String.

Свойства

ИмяОбъекта.ИмяСвойства

Добавлять свойство к объекту можно придавая ему значение. Пример:

personObj.firstname="Вася";

personObj.lastname="Иванов";

personObj.age=30;

personObj.eyecolor="карие";

document.write(personObj.firstname);

Код выше сгенерирует следующий вывод: Вася

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

Number String Boolean Date Math Array Error.

Методы

Объект также может включать методы.

ИмяОбъекта.ИмяМетода()

personObj.sleep();

1. Создание прямого экземпляра объекта

Создание нового экземпляра объекта, и добавляет к нему четыре свойства:

personObj=new Object();

personObj.firstname="Вася";

personObj.lastname="Иванов";

personObj.age=30;

personObj.eyecolor="карие";

альтернативный синтаксис (использование объектных литералов):

personObj= {firstname: "Вася", lastname:"Иванов", age:30,eyecolor:"карие"};

Добавить метод к объекту personObj также просто. Следующий код добавляет метод с названием eat() к объекту personObj:

personObj.eat=eat;

2. Создание конструктора объекта

Создаем функцию, которая инициализирует объекты:

function person(firstname,lastname,age,eyecolor)

{this.firstname=firstname;

this.lastname=lastname;

this.age=age;

this.eyecolor=eyecolor;}

Внутри функции вы должны присвоить значения свойствам, используя конструкцию this.ИмяСвойства.

слово "this" указывает на конкретный - текущий объект, свойства которого вы инициализируете в конструкторе.

16. Наследование в js на основе концепций прототипноориентированного языка. Свойство prototype. Добавление свойств и методов к конструкторам объектов.

В JS объекты наследуют от объектов без классов. Реализуется наследование через неявную (внутреннюю) ссылку одного объекта на другой, который называется его прототипом и обозначается[[prototype]].

Также существует свойство с похожим названием prototype (без квадратных скобок) - оно вспомогательное и указывает, откуда брать прототип при создании объекта.

Когда вы ставите функции Animal свойство Animal.prototype = XXX - вы подразумеваете: "все новые объекты класса Animal будут иметь прототип XXX".

Например, пусть объект кролик "rabbit" наследует от объекта животное "animal".

В наследовании на прототипах это реализуется как ссылка rabbit.[[prototype]] = animal:

Ссылка [[prototype]] работает так:

1. Любое запрошенное свойство ищется сначала в rabbit

2. Если свойство там не найдено, то оно ищется в rabbit.[[prototype]], т.е. в animal

Благодаря поиску по прототипу получается, что все функции и переменные, которые были в animal, доступны и в rabbit.

При объявлении объекта можно указать свойство-функцию, например:

var user = { name: 'Василий',

sayHi: function() {

alert( 'Привет!' ); } };

user.sayHi();

Свойства функции называют «методами» объектов. Их можно добавлять и удалять в любой момент.

1. удаление

o.test = 5

delete o.test

o['bla'] = true

2. добавление

var rabbit = {}

rabbit.run = function(n) {

alert("Пробежал "+n+" метров!") }

rabbit.run(5) // Пробежал 5 метров

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]