JavaScript Объект
В JavaScript всё является объектом: строки, числа, массивы, функции...
Кроме того, JavaScript позволяет создавать пользовательские объекты.
Всё является объектом
JavaScript предоставляет множество встроенных объектов, таких как String, Date, Array, и т. д. Объекты — это особые типы данных, которые имеют свойства и методы.
- Логическое значение может быть объектом.
- Число может быть объектом.
- Строка также может быть объектом
- Дата является объектом
- Math и регулярные выражения также являются объектами
- Массив является объектом
- Даже функции могут быть объектами
Объекты JavaScript
Объект — это просто особый тип данных. Объекты имеютсвойстваиметоды。
Доступ к свойствам объекта
Свойства — это значения, связанные с объектом.
Синтаксис доступа к свойству объекта:
objectName.propertyName
В этом примере используется свойство length объекта String для получения длины строки:
var message="Hello World!"; var x=message.length;
После выполнения приведённого выше кода значение x будет:
12
Доступ к методам объекта
Методы — это действия, которые можно выполнять над объектами.
Вызвать метод можно с помощью следующего синтаксиса:
objectName.methodName()
В этом примере используется метод toUpperCase() объекта String для преобразования текста в верхний регистр:
var message="Hello world!"; var x=message.toUpperCase();
После выполнения приведённого выше кода значение x будет:
HELLO WORLD!
Создание объектов JavaScript
С помощью JavaScript можно определять и создавать собственные объекты.
Существует два различных способа создания новых объектов:
- Используйте Object для определения и создания экземпляра объекта.
- Используйте функцию для определения объекта, затем создавайте новые экземпляры объектов.
Использование Object
В JavaScript почти все объекты являются экземплярами типа Object; все они наследуют свойства и методы из Object.prototype.
Конструктор Object создаёт объект-обёртку.
Конструктор Object создаёт объект на основе переданного аргумента, а именно следующим образом:
- Если переданное значение равно null или undefined, будет создан и возвращён пустой объект.
- Если передано примитивное значение, будет создан объект его типа-обёртки.
- Если передано значение ссылочного типа, это значение всё равно будет возвращено; переменные, скопированные из него, сохраняют тот же ссылочный адрес, что и исходный объект.
- При вызове не в форме конструктора Object ведёт себя так же, как new Object().
Формат синтаксиса:
// 以构造函数形式来调用 new Object([value])
value может быть любым значением.
В следующем примере Object используется для создания логического объекта:
// 等价于 o = new Boolean(true); var o = new Object(true);
Этот пример создаёт новый экземпляр объекта и добавляет в него четыре свойства:
Пример
Попробуйте сами »
Вы также можете использовать литерал объекта для создания объекта со следующим синтаксисом:
var myObject = {
key1: value1,
key2: value2,
// 更多键值对...
};
- myObject:Имя переменной, используемое для ссылки на весь объект.
- key1, key2:Имя свойства, может быть строкой или идентификатором.
- value1, value2:Значение свойства может быть любым типом данных JavaScript, включая числа, строки, логические значения, функции, массивы или даже другие объекты.
Пример
firstName: 'John',
lastName: 'Doe',
age: 30,
isStudent: false,
greet: функция() {
console.log('Привет, я ' + this.firstName + ' ' + this.lastName);
}
};
console.log(person.firstName); // Вывод: John
person.greet(); // Вывод: Привет, я John Doe
Объект JavaScript — этоname:valueколлекция.
Использование конструкторов объектов
В этом примере используется функция для создания объекта:
Пример
Попробуйте сами »
В JavaScript this обычно относится к самой функции, которую мы выполняем, или к объекту, которому принадлежит функция (во время выполнения).
Создание экземпляров объектов JavaScript
Когда у вас есть конструктор объекта, вы можете создавать новые экземпляры объектов, например так:
var myFather=new person("John","Doe",50,"blue");
var myMother=new person("Sally","Rally",48,"green");
Добавление свойств к объектам JavaScript
Вы можете добавлять новые свойства к существующему объекту, присваивая значения объекту:
Предполагая, что объект person уже существует — вы можете добавить к нему эти новые свойства: firstname, lastname, age и eyecolor:
person.firstname="John"; person.lastname="Doe"; person.age=30; person.eyecolor="blue"; x=person.firstname;
После выполнения приведённого выше кода значение x будет:
John
Добавление методов к объектам JavaScript
Методы — это просто функции, прикреплённые к объектам.
Определите метод объекта внутри функции-конструктора:
function person(firstname,lastname,age,eyecolor)
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
this.changeName=changeName;
function changeName(name)
{
this.lastname=name;
}
}
Функция changeName() присваивает значение name свойству lastname объекта person.
Классы JavaScript
JavaScript — объектно-ориентированный язык, но JavaScript не использует классы.
В JavaScript вы не создаёте классы и не создаёте объекты через классы (как в других объектно-ориентированных языках).
JavaScript основан на прототипах, а не на классах.
Цикл for...in в JavaScript
Оператор JavaScript for...in перебирает свойства объекта.
Синтаксис
for (variable in object)
{
执行的代码……
}
Примечание:Блок кода внутри цикла for...in будет выполняться один раз для каждого свойства.
Пример
Перебор свойств объекта:
Пример
Попробуйте сами »
Объекты JavaScript изменяемы
Объекты изменяемы; они передаются по ссылке.
Объект person в следующем примере не создаёт копию:
var x = person; // 不会创建 person 的副本,是引用
Если вы измените x, свойства person также изменятся:
Пример
Попробуйте сами »