English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основы JavaScript教程

Объекты JavaScript

Функции JavaScript

JS HTML DOM

JS браузер BOM

Основы AJAX教程

JavaScript Референс Мануал

Создание объектов JavaScript

Объекты состоят изСвойстваиМетодысоставленных из набора данных.

Как и во многих других языках программирования, объекты в JavaScript можно сравнить с объектами реального мира.

В JavaScript, по сути, все является объектом:

  • Строки могут быть объектами (если они определены с помощью ключевого слова new)

  • Числа могут быть объектами (если они определены с помощью ключевого слова new)

  • Булевы значения могут быть объектами (если они определены с помощью ключевого слова new)

  • Даты всегда объекты

  • Математические значения всегда объекты

  • Массивы всегда объекты

  • Регулярные выражения всегда объекты

  • Функции всегда объекты

  • Object это объект

Все значения JavaScript, кроме primitives, являются объектами.

JavaScript базовые элементы

Базовые значения не имеют свойств или методов.

В JavaScript есть 5 видов базовых типов:

  • string

  • number

  • boolean

  • null

  • undefined

对象是变量

Объекты являются переменными

var user = "oldtoolbag.com";
Тестирование看看‹/›

Переменные JavaScript могут содержать только одно значение.

Объекты также являются переменными, но объекты могут содержать множество значений.name:valueДа, и разделены двоеточием (:).

var user = {firstName: "Вишал", lastName: "Джадар", age: 22, location: "Нью-Дели"};
Тестирование看看‹/›

JavaScript объекты представляют собой набор unordered свойств.

Свойства объекта

Свойства представляют собой связь между именем и значением в объекте и могут содержать любые типы данных.

Свойства обычно указывают на характеристики объекта.

СвойстваЗначения свойств
firstNameВишал
lastNameДжадария
age22
locationНовый Дели

Вы узнаете больше о свойствах в следующей главе.

Методы объекта

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

Методы хранятся в качестве свойств какОпределение функции.

СвойстваСоответствующее значение
firstNameВишал
lastNameДжадария
age22
locationНовый Дели
getNamefunction() {return this.firstName + " " + this.lastName;}

Внимание:является функцией, хранящейся в качестве свойства.

Создание JavaScript объекта

JavaScript имеет множество предопределенных объектов. Кроме того, вы можете создать свои собственные объекты.

Есть несколько способов создания нового объекта:

  • ИспользованиеКонстанты объекта, которая использует фигурные скобки: {}

  • ИспользованиеКонструктор объекта, которая использует new Object()

  • Или, вы можете сначала создатьКонструктор   Затем создайте объект, вызывая эту функцию

Использование констант объекта

ИспользованиеКонстанты объектаявляется наиболее простым способом создания JavaScript объекта.

ИспользованиеКонстанты объектаВы можете определить и создать объект в одной строке.

Ниже приведен пример создания нового JavaScript объекта с четырьмя свойствами:

var user = {firstName: "Вишал", lastName: "Джадар", age: 22, location: "Нью-Дели"};
Тестирование看看‹/›

Определение объекта может распространяться на несколько строк:

var user = {
  firstName: "Вишал",
  lastName: "Джадария",
  age: 22,
  location: "Новый Дели"
};
Тестирование看看‹/›

Использование new Object()

ИспользованиеКонструктор объектаявляется еще одним способом создания JavaScript объекта.

Ниже приведен пример создания нового JavaScript объекта с четырьмя свойствами:

var user = new Object();
user.firstName = "Вишал";
user.lastName = "Джадария";
user.age = 22;
user.location = "Новый Дели";
Тестирование看看‹/›

upper two examples are completely identical. Не нужно использовать new Object().

ИспользованиеОбъектное выражениеявляется наиболее распространенным и предпочтительным методом, так как он менее wahrscheinlich вызывает несовместимости и неожиданные результаты.

Использование конструктора

Кроме того, вы можете создать объект двумя следующими шагами:

  • через написаниеКонструкторОпределение типа объекта (по соглашению используется верхний регистр)

  • Пример создания объекта с помощью ключевого слова new

Пример определения типа объекта через конструктор:

  function User(fname, lname, age, loc) {
   this.firstName = fname;
   this.lastName = lname;
   this.age = age;
   this.location = loc;
  }

Теперь мы можем создать объект с именемuser1объектов, как показано ниже:

var user1 = new User("Вишал", "Джадар", 22, "Нью-Дели");
Тестирование看看‹/›

Мы обсудим его позже в этом руководстве.Конструктор.

Объекты JavaScript изменяемы

Изменяемые — это переменные, которые можно изменить. В JavaScript только объекты и массивы изменяемы, а не простые значения.

Изменяемые объектыявляются объектами, чье состояние можно изменить после их создания.

Невозможные для измененияОбъекты — это объекты, чья состояние не может быть изменено после их создания.

строкамиичисламиявляютсяНевозможные для изменения. Давайте разберем это на примере:

  var immutableString = "Hello";
  
  // В上游 коде был создан новый объект с строковым значением.
  
  immutableString = immutableString + "World";
  
  // Мы теперь добавляем "World" к существующему значению.

После добавления "immutableString" к значению строки произойдет следующее:

  • Получается текущее значение "immutableString".

  • "World" добавляется к существующему значению "immutableString".

  • Затем результат значения назначается новому блоку памяти.

  • Теперь объект "immutableString" указывает на созданное новое пространство памяти.

  • Теперь созданное пространство памяти доступно для переработки мусора.

Объекты изменяемы: они адресуются по ссылке, а не по значению.

Если user является объектом, то следующие строки не создадут копию этого пользователя:

  var x = user; // Это не создаст копию user.

Объект x не является копией user, это сам user. X и user — это один и тот же объект.

Любые изменения в x также изменят user, так как x и user являются одним и тем же объектом.

var user = {firstName: "Вишал", lastName: "Джадар", age: 22, location: "Нью-Дели"};
var x = user;
x.location = "Goa"; // Это изменит x.location и user.location одновременно
Тестирование看看‹/›

Сравнение объектов

В JavaScript объекты являются типом ссылок. Даже если два различных объекта имеют одинаковые свойства, они никогда не будут равны.

// Два переменных, два различных объекта с одинаковыми свойствами
var fruit = {name: "apple"};
var fruitbear = {name: "apple"};
fruit == fruitbear; // возвращает false
fruit === fruitbear; // возвращает false
Тестирование看看‹/›

Только сравнение одной и той же ссылки на объект с собой даст true:

// Два переменных, один объект
var fruit = {name: "apple"};
var fruitbear = fruit; // Ассигнование ссылки на объект fruit объекту fruitbear
// Здесь fruit и fruitbear указывают на один и тот же объект
fruit == fruitbear; // возвращает true
fruit === fruitbear; // возвращает true
Тестирование看看‹/›