Определение объектов JavaScript

Курс рекомендован:

В JavaScript объекты являются королем. Если вы понимаете объекты, вы понимаете JavaScript.

  • В JavaScript почти "все" является объектом. Строки являются объектами (если использовать new
  • Булевы значения являются объектами (если использовать Строки являются объектами (если использовать new
  • Числа являются объектами (если использовать Строки являются объектами (если использовать new
  • Ключевые слова определяются)
  • Даты всегда объекты
  • Арифметика всегда объекты
  • Регулярные выражения всегда объекты
  • Массивы всегда объекты
  • Функции всегда объекты

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

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

Исходные значения JavaScriptИсходные значения

Это означает значения, которые не имеют свойств или методов.Исходные данные типов

Это означает данные, обладающие исходными значениями.

  • "Hello"
  • 3.14
  • false
  • false всегда false
  • (объект) null всегда null

JavaScript определил 5 типов исходных данных:

Неизменные значения (они являются硬кодированными и, следовательно, не могут быть изменены).

значение Предположим, x = 3.14, вы можете изменить значение x. Но вы не можете изменить значение 3.14. Тип
Комментарии "Hello" string
"Hello" всегда "Hello" 3.14 number
3.14 всегда 3.14 false true
true всегда true false boolean
false всегда false false всегда false null
(объект) null всегда null (объект) null всегда null undefined

Undefined всегда undefined

Объекты - это переменные, содержащие переменные

Пример

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

Попробуйте сами

var person = "Bill Gates";

Объекты также являются переменными. Но объекты могут содержать много значений.Значения следуютИмя : Значение

Пример

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};

Попробуйте сами

Объекты в JavaScript пишутся в виде пары (имя и значение, разделенных двоеточием).Имя-значениесоставляют набор.

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

Имя-значение в объекте JavaScript называютсвойство

свойство значение
firstName Bill
lastName Gates
age 62
eyeColor blue

Объекты, написанные в виде пары имя-значение,类似这样:

  • Ассоциативные массивы в PHP
  • Словарь в Python
  • Хэш-таблицы в C
  • Хэш-карты в Java
  • Хеши в Ruby и Perl

метод объекта

Методы можно выполнять на объекте.действие

Объектные свойства могут быть исходными значениями, другими объектами и функциями.

метод объектасодержитОпределение функцииобъекта.

свойство значение
firstName Bill
lastName Gates
age 62
eyeColor blue
fullName function() {return this.firstName + " " + this.lastName;}

JavaScript-объекты являются контейнерами для именованных значений, называемых свойствами и методами.

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

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

С помощью JavaScript вы можете определить и создать свои собственные объекты.

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

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

В ECMAScript 5 также можно определить объектный конструктор функцией Object.create() для создания объекта.

Используйте объектные литералы

Это самый простой способ создания объекта.

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

Объектные литералы указывают на фигурные скобки {} в котором указаны имена:значения (например, age:62).

В следующем примере создается новый объект JavaScript с четырьмя свойствами:

Пример

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};

Попробуйте сами

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

Пример

var person = {
    firstName:"Bill",
    lastName:"Gates",
    age:62,
    eyeColor:"blue"
};

Попробуйте сами

Используя ключевое слово JavaScript new

В следующем примере также создается новый объект JavaScript с четырьмя свойствами:

Пример

var person = new Object();
person.firstName = "Bill";
person.lastName = "Gates";
person.age = 50;
person.eyeColor = "blue"; 

Попробуйте сами

Результаты двух предыдущих примеров одинаковы. Не нужно использовать new Object()

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

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

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

Если person является объектом,下面的语句不会 создать копию person:

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

объект x не копия person. Оноэто x и person являются одним и тем же объектом.

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

Пример

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"}
var x = person;
x.age = 10;           // Это изменит и x.age, и person.age

Попробуйте сами

Комментарий:Переменные JavaScript не изменяемы. Только объекты JavaScript таковы.