ЛУЧШИЙ САЙТ ДЛЯ РАЗРАБОТЧИКОВ
×

JavaScript учебник

JS HOME JS Introduction JS Where To JS Output JS Statements JS Syntax JS Comments JS Variables JS Operators JS Arithmetic JS Assignment JS Data Types JS Functions JS Objects JS Scope JS Events JS Strings JS String Methods JS Numbers JS Number Methods JS Arrays JS Array Methods JS Array Sort JS Array Iteration JS Dates JS Date Formats JS Date Get Methods JS Date Set Methods JS Math JS Random JS Booleans JS Comparisons JS Conditions JS Switch JS Loop For JS Loop While JS Break JS Type Conversion JS Bitwise JS RegExp JS Errors JS Debugging JS Hoisting JS Strict Mode JS this Keyword JS Style Guide JS Best Practices JS Mistakes JS Performance JS Reserved Words JS Versions JS Version ES5 JS Version ES6 JS JSON

JS Forms

JS Forms Forms API

JS Objects

Object Definitions Object Properties Object Methods Object Constructors Object Prototypes

JS Functions

Function Definitions Function Parameters Function Invocation Function Call Function Apply Function Closures

JS HTML DOM

DOM Intro DOM Methods DOM Document DOM Elements DOM HTML DOM CSS DOM Animations DOM Events DOM Event Listener DOM Navigation DOM Nodes DOM Collections DOM Node Lists

JS Browser BOM

JS Window JS Screen JS Location JS History JS Navigator JS Popup Alert JS Timing JS Cookies

JS AJAX

AJAX Intro AJAX XMLHttp AJAX Request AJAX Response AJAX XML File AJAX PHP AJAX ASP AJAX Database AJAX Applications

JS JSON

JSON Intro JSON Syntax JSON vs XML JSON Data Types JSON Objects JSON Arrays JSON Parse JSON Stringify JSON PHP JSON HTML JSON JSONP

JS References

JavaScript Objects HTML DOM Objects


JavaScript Объекты


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


В JavaScript, почти "все" является объектом.

  • Логические объекты могут быть объектами (если они определены с помощью ключевого слова New )
  • Числа могут быть объектами (если они определены с помощью ключевого слова New )
  • Строки могут быть объектами (если они определены с помощью ключевого слова New )
  • Даты всегда являются объектами
  • Математика всегда объекты
  • Регулярные выражения всегда являются объектами
  • Массивы всегда являются объектами
  • Функции всегда являются объектами
  • Объекты всегда являются объектами

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


Примитивы JavaScript

примитивное значение — это значение, которое не имеет свойств или методов.

примитивный тип данных — это данные, которые имеют примитивное значение.

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

  • Строка
  • Номер
  • Логических
  • Null
  • Неопределенный

Примитивные значения являются неизменяемыми (они жестко закодированы и поэтому не могут быть изменены).

Если x = 3,14, можно изменить значение x. Но вы не можете изменить значение 3,14.

ЗначениеТипКомментарий
"Hello"string"Hello" всегда "Hello"
3.14number3,14 всегда 3,14
truebooleanИстина всегда истинна
falsebooleanfalse всегда false
nullnull (object)значение NULL всегда равно null
undefinedundefinedundefined всегда не определено


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

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

Пример

var person = "John Doe";

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

Значения записываются как Name: пары значений (имя и значение, разделенные двоеточием).

Пример

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};

Объект JavaScript представляет собой коллекцию именованных значений


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

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

Свойство Значение
firstName John
lastName Doe
age 50
eyeColor blue

Объекты, написанные как пары имен значений, похожи на:

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

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

Методы — это действия , которые могут быть выполнены для объектов.

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

метод Object является свойством объекта, содержащим Определение функции.

Свойство Значение
firstName John
lastName Doe
age 50
eyeColor blue
fullName function() {return this.firstName + " " + this.lastName;}

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

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


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

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

Существуют различные способы создания новых объектов:

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

В ECMAScript 5 объект также может быть создан с помощью объекта Function. Create ().


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

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

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

Литерал объекта — это список пар «имя: значение» (например, возраст: 50) внутри фигурных скобок {}.

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

Пример

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};

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

Пример

var person = {
    firstName:"John",
    lastName:"Doe",
    age:50,
    eyeColor:"blue"
};

Использование ключевого слова JavaScript New

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

Пример

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

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


Объекты JavaScript являются изменяемыми

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

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

var x = person;  // This will not create a copy of person.

Объект x не является копией Person. Это человек. Оба x и Person являются одинаковыми объектами.

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

Пример

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}

var x = person;
x.age = 10;           // This will change both x.age and person.age

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