Справочник по JavaScript

JavaScript объект Array

Объекты типа Array (массивы) используются для хранения нескольких значений в одной переменной:

1

var cars = ["Saab", "Volvo", "BMW"];

Индексы массивов начинаются с нуля: первый элемент массива имеет индекс 0, второй 1 и так далее.

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

Методы

Метод

Описание

concat()

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

indexOf()

Возвращает первый индекс элемента внутри массива, эквивалентный указанному значению, или -1, если совпадений не найдено.

join()

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

lastIndexOf()

Возвращает последний индекс элемента внутри массива, эквивалентный указанному значению, или -1, если совпадений не найдено.

pop()

Удаляет последний элемент из массива и возвращает этот элемент.

push()

Добавляет один или несколько элементов в конец массива и возвращает новую длину массива.

reverse()

Изменяет порядок следования элементов в текущем массиве на обратный.

shift()

Удаляет первый элемент из массива и возвращает этот элемент.

slice()

Извлекает часть массива и возвращает новый массив.

sort()

Сортирует элементы массива.

splice()

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

toString()

Преобразует массив в строку и возвращает результат.

unshift()

Добавляет один или несколько элементов в начало массива и возвращает новую длину массива.

valueOf()

Возвращает примитивное значение объекта.

Свойства

Свойство

Описание

constructor

Ссылается на функцию-конструктор, которая была использована при создании объекта.

length

Возвращает целое число, указывающее количество элементов в массиве.

prototype

Ссылается на объект, являющийся прототипом для объектов типа Array. Данное свойство используется интерпретатором, когда функция используется как конструктор при создании нового объекта. Любой объект, созданный с помощью конструктора, наследует все свойства объекта, на который ссылается свойство prototype.

 

JavaScript объект Boolean

Создает новый объект типа Boolean:

1

var foo = new Boolean([booleanValue]);

Параметры:

foo

Переменная, которой присваивается объект.

booleanValue

Необязательный параметр, который задает начальное логическое значение для нового объекта. Если booleanValue не указан или имеет значение false, 0, null, NaN, или является пустой строкой, то начальным значением объекта будет fasle. Во всех остальных случаях значением будет true.

Примечание: интерпретатор JavaScript неявно использует объект Boolean всякий раз, когда логический (булев) тип данных требуется преобразовать в объект. То есть объект Boolean служит объектом оберткой для логического типа данных.

Не используйте объект Boolean для преобразования нелогических значений в логические. Вместо этого можно использовать Boolean в качестве функции для выполнения этой задачи:

1

var foo = Boolean(10); // true

Также можно использовать функцию Boolean(), чтобы определять истинно или ложно выражение:

1

2

Boolean(10 > 9)  // true

Boolean(10 < 9)  // false

Методы

Метод

Описание

toString()

Преобразует логическое значение в строку и возвращает результат.

valueOf()

Возвращает примитивное значение объекта.

Свойства

Свойство

Описание

constructor

Ссылается на функцию-конструктор, которая была использована при создании объекта.

prototype

Ссылается на объект, являющийся прототипом для объектов типа Boolean. Данное свойство используется интерпретатором, когда функция используется как конструктор при создании нового объекта. Любой объект, созданный с помощью конструктора, наследует все свойства объекта, на который ссылается свойство prototype.

 

JavaScript объект Date

Объект Date позволяет работать с датами и временем. Для создания нового объекта Date используется следующий синтаксис:

1

new Date()

Объект Date можно создать с определенной датой или временем, в этом случае необходимо будет передать один из четырех возможных параметров:

  • миллисекунды: значение должно быть числом миллисекунд с 01.01.1970

1

2

var birthDate = new Date(8298400000);

document.write(birthDate);

  • строка с датой: любая дата в формате поддерживаемом методом parse()

1

2

var birthDate = new Date("April 16, 1975");

document.write(birthDate);

  • год, месяц, день

1

2

var birthDate = new Date(1975, 4, 28);

document.write(birthDate);

  • Обратите внимание, что число 4 соответствует маю месяцу. Это значит, что январю соответствует число 0. Аналогичным образом вычисляются и дни, только нулю в этом случае соответствует воскресенье.
  • год, месяц, день, час, минуты, секунды, миллисекунды

При работе с объектом Date важно помнить, что вычисления выполняются с использованием единого всемирного времени (UTC), несмотря на то, что ваш компьютер может отображать время в соответствии с вашей временной зоной.

Методы

Метод

Описание

getDate()

Возвращает день месяца (от 1 до 31) для указанной даты по местному времени.

getDay()

Возвращает день недели (от 0 до 6; 0 = воскресенье, 1 = понедельник и т.д.) для указанной даты по местному времени..

getFullYear()

Возвращает год (четыре цифры).

getHours()

Возвращает час (от 0 до 23).

getMilliseconds()

Возвращает миллисекунды (от 0 до 999).

getMinutes()

Возвращает минуты (от 0 до 59).

getMonth()

Возвращает месяц (от 0 до 11; 0 = январь, 1 = февраль и т.д.).

getSeconds()

Возвращает секунды (от 0 до 59).

getTime()

Возвращает количество миллисекунд, прошедших с полуночи 01.01.1970.

getTimezoneOffset()

Возвращает разницу во времени между временем UTC и местным временем, в минутах.

getUTCDate()

Возвращает день месяца по всемирному времени (от 1 до 31).

getUTCDay()

Возвращает день недели по всемирному времени (от 0 до 6).

getUTCFullYear()

Возвращает год по всемирному времени (четыре цифры).

getUTCHours()

Возвращает час по всемирному времени (от 0 до 23).

getUTCMilliseconds()

Возвращает миллисекунды по всемирному времени (от 0 до 999).

getUTCMinutes()

Возвращает минуты по всемирному времени (от 0 до 59).

getUTCMonth()

Возвращает месяц по всемирному времени (от 0 до 11).

getUTCSeconds()

Возвращает секунды по всемирному времени (от 0 до 59).

parse()

Анализирует строку даты (например, "21 мая 1992 года") и возвращает строку со значением даты, которая содержит число в миллисекундах с 1 января 1970 00:00:00.

setDate()

Устанавливает день месяца для указанной даты по местному времени (от 1 до 31).

setFullYear()

Устанавливает год (четыре цифры).

setHours()

Устанавливает часы для указанной даты по местному времени (от 0 до 23).

setMilliseconds()

Устанавливает миллисекунды для указанной даты по местному времени.

setMinutes()

Устанавливает минуты (от 0 до 59).

setMonth()

Устанавливает месяц (от 0 до 11).

setSeconds()

Устанавливает секунды (от 0 до 59).

setTime()

Устанавливает дату в миллисекундах после (или до) 01.01.1970.

setUTCDate()

Задает день месяца.

setUTCFullYear()

Устанавливает год по всемирному времени (четыре цифры).

setUTCHours()

Устанавливает час для указанной даты по всемирному времени.

setUTCMilliseconds()

Задает миллисекунды для указанной даты по всемирному времени.

setUTCMinutes()

Устанавливает минуты для указанной даты по всемирному времени.

setUTCMonth()

Задает месяц для указанной даты по всемирному времени.

setUTCSeconds()

Устанавливает секунды для указанной даты по всемирному времени.

toDateString()

Возвращает часть даты в виде строки.

toISOString()

Преобразует дату в строку, используя стандарт ISO 8601.

toJSON()

Возвращает дату в виде строки, отформатированную как дата JSON.

toLocaleDateString()

Возвращает часть даты в виде строки, с представлением даты на основе параметров системы.

toLocaleTimeString()

Возвращает часть даты в виде строки, с представлением даты на основе параметров системы.

toLocateString()

Возвращает дату в виде строки, с представлением даты на основе параметров системы.

toString()

Возвращает строку, представляющую указанный объект Date.

toTimeString()

Возвращает часть даты в виде строки.

toUTCString()

Преобразует дату в строку, используя часовой пояс UTC.

UTC()

Принимает те же параметры, что и длинная форма конструктора (т.е. 2-7) и возвращает количество миллисекунд с 1 января 1970, 00:00:00 UTC.

valueOf()

Возвращает примитивное значение объекта Date.

Свойства

Свойство

Описание

constructor

Ссылается на функцию-конструктор, которая была использована при создании объекта.

prototype

Ссылается на объект, являющийся прототипом для объектов типа Date. Данное свойство используется интерпретатором, когда функция используется как конструктор при создании нового объекта. Любой объект, созданный с помощью конструктора, наследует все свойства объекта, на который ссылается свойство prototype.

 

JavaScript объект Math

Math - встроенный объект, который предоставляет для использования основные математические константы и функции:

1

2

Math.свойство

Math.метод()

Объект Math не может быть создан с помощью функции конструктора и оператора new, если попытаться это сделать, то в сценарии возникнет ошибка. Интерпретатор JavaScript создает объект Math сразу после того как интерпретатор будет загружен. Все его методы и свойства доступны сценарию в любом месте вашей программы.

Методы

Метод

Описание

abs(x)

Возвращает абсолютную величину числа x.

Примечание: абсолютной величиной положительного числа называется само это число. Абсолютной величиной отрицательного числа называется противоположное ему положительное число. Абсолютная величина нуля есть ноль.

acos(x)

Возвращает арккосинус числа.

asin(x)

Возвращает арксинус числа.

atan(x)

Возвращает арктангенс числа.

atan2(y, x)

Возвращает угол от оси X до точки с координатами (y,x).

ceil(x)

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

cos(x)

Возвращает косинус числа.

exp(x)

Возвращает e (основание натуральных логарифмов), возведенное в степень.

floor(x)

Округляет число в меньшую сторону, отбрасывая дробную часть и возвращая целое число.

log(x)

Возвращает натуральный логарифм числа.

max(x, y, z,...,n)

Возвращает большее из предоставленных числовых значений. Если хотя бы один из аргументов не может быть преобразован в число, то результатом будет NaN.

min(x, y, z,...,n)

Возвращает меньшее из предоставленных числовых значений. Если хотя бы один из аргументов не может быть преобразован в число, то результатом будет NaN.

pow(x, y)

Возвращает значение числа x, возведенного в указанную степень (число y).

random()

Возвращает псевдослучайное число между 0 и 1.

round(x)

Округляет число с плавающей точкой в большую или меньшую сторону до ближайшего целого числа.

sin(x)

Возвращает синус числа.

sqrt(x)

Возвращает квадратный корень числа.

tan(x)

Возвращает тангенс числа.

Примечание: тригонометрические функции (sin, cos, tan, asin, acos, atan и atan2) принимают или возвращают величину углов в радианах.

Свойства

Свойство

Описание

E

Возвращает основание натурального логарифма - константа e (приблизительно 2.718).

LN2

Возвращает натуральный логарифм числа 2 (приблизительно 0.693).

LN10

Возвращает натуральный логарифм числа 10 (приблизительно 2.303).

LOG2E

Возвращает логарифм числа e по основанию 2 (приблизительно 1.442).

LOG10E

Возвращает логарифм числа e по основанию 10 (приблизительно 0.434).

PI

Возвращает число Пи.

SQRT1_2

Возвращает квадратный корень числа 0.5 (приблизительно 0.707).

SQRT2

Возвращает квадратный корень числа 2 (приблизительно 1.414).

 

JavaScript объект Number

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

1

var foo = new Number(value)

Параметры:

foo

Переменная, которой присваивается объект Number.

value

Числовое значение.

Примечание: интерпретатор JavaScript неявно использует объект Number всякий раз, когда числовой тип данных требуется преобразовать в объект. Очень редко в программе требуется создать объект Number с помощью функции конструктора.

Методы

Метод

Описание

toExponential(x)

Возвращает строку, содержащую число, представленное в экспоненциальной записи.

toFixed(x)

Возвращает строку, представляющую число, содержащее x чисел после десятичной точки.

toPrecision(x)

Возвращает строку, представляющую число с указанной точностью в десятичной или экспоненциальной записи.

toString()

Возвращает строку, представляющую указанный объект.

valueOf()

Возвращает примитивное значение указанного объекта.

Свойства

Свойство

Описание

constructor

Ссылается на функцию-конструктор, которая была использована при создании объекта.

MAX_VALUE

Возвращает максимальное положительное число.

MIN_VALUE

Возвращает минимальное положительное число, ближайшее к нулю.

NEGATIVE_INFINITY

Специальное значение, представляющее минус бесконечность.

NaN

Специально значение означающее "Not-a-Number" (не число).

POSITIVE_INFINITY

Специальное значение, представляющее бесконечность.

prototype

Ссылается на объект, являющийся прототипом для объектов типа Number. Данное свойство используется интерпретатором, когда функция используется как конструктор при создании нового объекта. Любой объект, созданный с помощью конструктора, наследует все свойства объекта, на который ссылается свойство prototype.

 

JavaScript объект String

Объект String позволяет манипулировать и форматировать строки текста и выполнять поиск подстрок в строках.

1

var foo = new String([value])

Параметры:

foo

Переменная, которой присваивается объект String.

value

Любая последовательность Unicode символов, которую необходимо преобразовать в строку.

Помимо обычных символов JavaScript предоставляет возможность вводить в строку специальные символы, которые нельзя ввести напрямую с клавиатуры, для этого используются управляющие последовательности (escape sequences) :

Код

Символ

\0

ноль

\'

одиночная кавычка (апостроф)

\"

двойная кавычка

\\

обратный слэш

\n

новая строка

\r

возвращение каретки

\v

вертикальный tab

\t

tab

\b

backspace

\f

смена страницы

\uXXXX

Unicode символ, указанный с помощью шестнадцатеричного числа XXXX

\xXX

символ Latin-1

Строковой литерал

Строкой литерал имеет ноль или более символов, заключенных в одиночные или двойные кавычки. Все строковые литералы имеет примитивный строковой тип данных. Объект String создается с помощью оператора new и, в отличие от строковых литералов, имеет тип данных объект:

1

2

3

4

5

var strLit = "Это строковой литерал.";

var strObj = new String("Это объект String.");

 

document.write(typeof strLit);   //string

document.write(typeof strObj);   //object

Примечание: при вызове любого метода для строкового литерала, интерпретатор JavaScript неявно использует объект String в качестве объекта обертки, поэтому строковой литерал интерпретируется так, как будто был создан с помощью оператора new.

Методы

Метод

Описание

charAt()

Возвращает символ строки с указанным индексом (позицией).

charCodeAt()

Возвращает числовое значение Unicode символа, индекс которого был передан методу в качестве аргумента.

concat()

Возвращает строку, содержащую результат объединения двух и более предоставленных строк.

fromCharCode()

Возвращает строку, созданную с помощью указанной последовательности значений символов Unicode.

indexOf()

Возвращает позицию первого символа первого вхождения указанной подстроки в строке.

lastIndexOf()

Возвращает позицию последнего найденного вхождения подстроки или -1, если подстрока не найдена.

localeCompare()

Возвращает значение, указывающее, эквивалентны ли две строки в текущем языковом стандарте.

match()

Ищет строку, используя предоставленный шаблон регулярного выражения, и возвращает результат в виде массива. Если совпадений не найдено, метод возвращает значение null.

replace()

Ищет строку для указанного значения или регулярного выражения и возвращает новую строку, где указанные значения будут заменены. Метод не изменяет строку, для которой он вызывается.

search()

Возвращает позицию первого соответствия указанной подстроки или регулярного выражения в строке.

slice()

Позволяет извлечь подстроку из строки. Первый аргумент указывает индекс с которого нужно начать извлечение. Второй необязательный аргумент указывает позицию, на которой должно остановиться извлечение. Если второй аргумент не указан, то извлечено будет все с той позиции, которую указывает первый аргумент, и до конца строки.

В качестве аргументов можно передавать отрицательные значения, в этом случае начальная или конечная точка извлечения отсчитывается с конца строки. Последний символ строки соответствует индексу -1, второй с конца -2 и т.д.

Метод возвращает новую строку, содержащую извлеченную подстроку.

split()

Разбивает строку на подстроки, возвращая массив подстрок. В качестве аргумента можно передать символ разделитель (например запятую), используемый для разбора строки на подстроки.

substr()

Позволяет извлечь подстроку из строки. Первый аргумент указывает индекс с которого нужно начать извлечение. Второй аргумент указывает количество символов, которое нужно извлечь.

substring()

Извлекает символы из строки между двух указанных индексов, если указан только один аргумент, то извлекаются символы от первого индекса и до конца строки.

toLocaleLowerCase()

Преобразует символы строки в нижний регистр с учетом текущего языкового стандарта.

toLocaleUpperCase()

Преобразует символы строки в верхний регистр с учетом текущего языкового стандарта.

toLowerCase()

Конвертирует все символы строки в нижний регистр и возвращает измененную строку.

toString()

Возвращает строковое представление объекта.

toUpperCase()

Конвертирует все символы строки в верхний регистр и возвращает измененную строку.

trim()

Удаляет пробелы в начале и конце строки и возвращает измененную строку.

valueOf()

Возвращает примитивное значение объекта.

Свойства

Свойство

Описание

constructor

Ссылается на функцию-конструктор, которая была использована при создании объекта.

length

Возвращает длину строки.

prototype

Ссылается на объект, являющийся прототипом для объектов типа String. Данное свойство используется интерпретатором, когда функция используется как конструктор при создании нового объекта. Любой объект, созданный с помощью конструктора, наследует все свойства объекта, на который ссылается свойство prototype.

 

JavaScript объект RegExp

Регулярное выражение можно создать двумя способами: с помощью литерала или конструктора. Текст, заключённый в пару символов слэша, интерпретируется как литерал регулярного выражения. За вторым символом слэша из этой пары может следовать один или более символов, которые модифицируют поведение шаблона:

1

var first = /j$/;

Эта строка создает шаблон регулярного выражения и присваивает его переменной first. Данному шаблону будет соответствовать любая строка, которая заканчивается символом "j". Это же регулярное выражение можно определить с помощью конструктора RegExp():

1

var first = new RegExp("j$");

Общий синтаксис шаблонов регулярных выражений выглядит так:

1

2

var foo = /шаблон/[флаги];

var foo = new RegExp("шаблон"[,"флаги"]);

Параметры:

foo

Переменная, которой присваивается регулярное выражение.

шаблон

Текст регулярного выражения. При использовании синтаксиса литерала, текст должен быть заключен в символы "/", а если используется конструктор, то текст заключается в кавычки.

флаги

Необязательный параметр, позволяющий установить один или несколько флагов для шаблона.

Методы

Метод

Описание

exec()

Выполняет поиск в строке, используя шаблон регулярного выражения и возвращает массив, содержащий результаты поиска. Если совпадений не найдено, то метод вернет null.

test()

Выполняет поиск соответствия между регулярным выражение и переданной строкой. Возвращает значение true, если совпадение найдено, или false, если совпадений нет.

toString()

Возвращает строковое значение регулярного выражения.

Свойства

Свойство

Описание

constructor

Ссылается на функцию-конструктор, которая была использована при создании объекта.

global

Указывает, используется ли флаг «g» с регулярным выражением. Возвращает true или false.

ignoreCase

Указывает, используется ли флаг «i» с регулярным выражением. Возвращает true или false.

lastIndex

Определяет индекс, с которого начинается поиск следующего соответствия.

multiline

Указывает, используется ли флаг «m» с регулярным выражением. Возвращает true или false.

prototype

Ссылается на объект, являющийся прототипом для объектов типа RegExp. Данное свойство используется интерпретатором, когда функция используется как конструктор при создании нового объекта. Любой объект, созданный с помощью конструктора, наследует все свойства объекта, на который ссылается свойство prototype.

source

Возвращает строку, содержащую текст шаблона.

 

JavaScript объект Global

Глобальный объект - это обычный объект JavaScript, который играет очень важную роль: свойства этого объекта являются глобальными идентификаторами, доступными из любого места в программе. Когда браузер загружает новую страницу, создаётся новый глобальный объект, в котором инициализируется начальный набор свойств и методов, например:

  • Глобальные свойства, такие как undefined, Infinity и NaN.
  • Глобальные функции, такие как isNaN(), parseInt() и т.д.
  • Функции конструкторы, такие как Date(), RegExp(), String(), Object(), Array() и т.д.
  • Глобальные объекты, такие как Math, JSON и т.д.

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

В программном коде верхнего уровня, т.е. в JavaScript-коде, который не является частью функции, сослаться на глобальный объект можно с помощью ключевого слова this:

1

var global = this;  // Глобальная переменная содержит ссылку на глобальный объект

В клиентском JavaScript глобальным объектом является объект Window. Он имеет свойство window, ссылающееся на сам объект, которое можно использовать вместо ключевого слова this для ссылки на глобальный объект.

Когда в программе объявляется глобальная переменная, она становится свойством глобального объекта, если определяется функция, она становится методом глобального объекта:

1

2

3

4

5

var x = 5;

function foo() { alert("hi"); }

 

this.foo();

document.write(window.x);

Методы

Метод

Описание

decodeURI()

Возвращает строку, содержащую URI в декодированном виде.

decodeURIComponent()

Возвращает строку, содержащую часть URI в декодированном виде.

encodeURI()

Возвращает строку, содержащую URI в закодированном виде.

encodeURIComponent()

Возвращает строку, содержащую часть URI в закодированном виде.

eval()

Принимает строку в качестве аргумента и, если она содержит код JavaScript, то он будет выполнен.

isFinite()

Преобразует аргумент в число (если это необходимо) и возвращает true, если аргумент содержит любое значение отличное от NaN, положительной и отрицательной бесконечности. В этих трех случаях возвращает false.

isNaN()

Определяет является передаваемый аргумент значением NaN или нет.

parseFloat()

Анализирует строковый аргумент и возвращает число с плавающей точкой или NaN.

parseInt()

Анализирует строковый аргумент и возвращает целое число или NaN.

Свойства

Свойство

Описание

Infinity

Специальное числовое значение представляющее бесконечность.

NaN

Специально значение, указывающее что значение не является числом (Not a Number).

undefined

Специальное значение, указывающее на отсутствие значения. Например, переменная, которой не было присвоено значение имеет тип undefined.

 

JavaScript объект Object

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

1

var foo = new Object([значение])

Параметры:

foo

Переменная, которой присваивается объект.

значение

Любой из типов данных JavaScript (число, логическое значение или строка). Если значение является объектом, объект возвращается без изменений. Если значение равно null, undefined или значения нет, создается объект без содержимого. Необязательный параметр.

Примечание: все методы и свойства объекта Object доступны для всех объектов.

Функции

Функции

Описание

create()

Создает объект с указанным прототипом, и, при необходимости, содержащий указанные свойства.

defineProperties()

Добавляет одно или несколько свойств в объект или изменяет уже существующие свойства.

defineProperty()

Добавляет свойство в объект или изменяет уже существующее.

freeze()

Замораживает объект: предотвращает изменение значений существующих свойств и исключает добавление новых свойств.

getOwnPropertyDescriptor()

Возвращает описание данных свойства или метода.

getOwnPropertyNames()

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

getPrototypeOf()

Возвращает прототип указанного объекта.

isExtensible()

Возвращает значение, указывающее, могут ли быть добавлены новые свойства в объект.

isFrozen()

Возвращает значение true, если объект был заморожен.

isSealed()

Возвращает значение true, если объект был запечатан.

keys()

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

preventExtensions()

Предотвращает добавление новых свойств в объект.

seal()

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

Методы

Метод

Описание

hasOwnProperty()

Возвращает значение true, только если свойство с заданным именем существует в экземпляре объекта, а не прототипе.

isPrototypeOf()

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

toLocaleString()

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

toString()

Возвращает строку, представляющую объект.

valueOf()

Возвращает примитивное значение указанного объекта.

Свойства

Свойство

Описание

constructor

Ссылается на функцию-конструктор, которая была использована при создании объекта.

prototype

Ссылается на объект, являющийся прототипом для объектов типа Object. Данное свойство используется интерпретатором, когда функция используется как конструктор при создании нового объекта. Любой объект, созданный с помощью конструктора, наследует все свойства объекта, на который ссылается свойство prototype.