Меню
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP КАК СДЕЛАТЬ ПРОГРАММЫ SW3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS КИБЕРБЕЗОПАСНОСТЬ НАУКА О ДАННЫХ
     ❯   

JS Учебник


JS Версии


JS Объекты


JS Функции


JS Классы


JS Асинхронный


JS HTML DOM


JS Браузер BOM


JS Веб APIы


JS AJAX


JS JSON


JS или jQuery


JS Графика


JS Примеры


JS Рекомендация




JavaScript Обращение к функции



Код внутри JavaScript function будет выполняться, когда "что-то" обращается к нему.


Обращение к JavaScript функции

Код внутри функции не выполняется, когда функция определена.

Код внутри функции выполняется, когда к функции обратились.

Обычно используется термин "вызов функции" вместо "обращение к функции".

Также часто говорят "вызвать функцию", "запустить функцию" или "выполнить функцию".

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


Обращение к функции как функции

Пример
function myFunction(a, b) {
return a * b;
}
myFunction(10, 2); // вернёт 20
Попробуйте сами »

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

В HTML глобальным объектом по умолчанию является сама HTML страница, поэтому указанная выше функция "принадлежит" к HTML странице.

В браузере объект страницы является окном браузера. Функция выше автоматически становится функцией окна.

ФункциИ myFunction() и window.myFunction() являются одинаковыми:

Пример
function myFunction(a, b) {
return a * b;
}
window.myFunction(10, 2); // также вернёт 20
Попробуйте сами »

Это распространенный способ вызова функции JavaScript, но не очень хорошая практика.
Глобальные переменные, методы или функции могут легко создавать конфликты имен и ошибки в глобальном объекте.


Ключевое слово this

В JavaScript то, что называется this, является объектом, который "владеет" текущим кодом.

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

Обратите внимание, что this не является переменной. Это ключевое слово. Вы не можете изменить значение this.

Подсказка: Вы можете прочитать больше про ключевое слово this в разделе JS Ключевое слово this на нашем сайте.



Глобальный объект

Когда функция вызывается без объекта-владельца, значение this становится глобальным объектом.

В веб-браузере глобальный объект - это окно браузера.

Этот пример возвращает объект окна как значение this:

Пример
var x = myFunction(); // x будет объектом окна

function myFunction() {
return this;
}
Попробуйте сами »

Обращение к функции как к глобальной функции приводит к тому, что значение this будет глобальным объектом.
Использование объекта окна в качестве переменной может легко привести к краху вашей программы.


Вызов функции как метода

В JavaScript вы можете определить функции как методы объекта.

В следующем примере создается объект (myObject), с двумя свойствами (firstName и lastName), и методом (fullName):

Пример
var myObject = {
firstName:"Андрей",
lastName: "Щипунов",
fullName: function () {
return this.firstName + " " + this.lastName;
}
}
myObject.fullName(); // Вернёт "Андрей Щипунов"
Попробуйте сами »

Метод fullName является функцией. Функция принадлежит объекту. myObject является владельцем функции.

То, что называется this, является объектом, который "владеет" JavaScript кодом. В этом случае значение этого this является myObject.

Попробуйте это! Измените метод fullName для возврата значения this:

Пример
var myObject = {
firstName:"Андрей",
lastName: "Щипунов",
fullName: function () {
return this;
}
}
myObject.fullName(); // Вернёт [оbject Object]
Попробуйте сами »

Вызов функции как метода объекта приводит к тому, что значением this является сам объект.


Вызов функции с помощью конструктора функций

Если вызову функции предшествует ключевое слово new - это вызов конструктора.

Похоже на то, как вы создаете новую функцию, но поскольку функции JavaScript являются объектами, вы фактически создаёте новый объект:

Пример
// Это конструктор функции:
function myFunction(arg1, arg2) {
this.firstName = arg1;
this.lastName = arg2;
}

// Это создаёт новый объект
var x = new myFunction("Андрей", "Щипунов");
x.firstName; // вернёт "Андрей"
Попробуйте сами »

Вызов конструктора создает новый объект. Новый объект наследует свойства и методы от своего конструктора.

Ключевое слово this в конструкторе не имеет значения.
Значение this будет новым объектом, созданным при вызове функции.



×

Связаться с отделом продаж

Если вы хотите использовать услуги schoolsw3 как образовательное учреждение, команда или предприятие, отправьте нам электронное письмо:
sales@schoolsw3.com

Сообщить об ошибке

Если вы хотите сообщить об ошибке или внести предложение, отправьте нам электронное письмо:
help@schoolsw3.com

Schoolsw3 оптимизирован для обучения и подготовки. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно проверяются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего контента.
При использовании Schoolsw3 вы соглашаетесь прочитать и принять наши условия использования,
политику использования файлов cookie и конфиденциальности.

Авторское право 1999- принадлежит Refsnes Data. Все права защищены. Schoolsw3 работает на SW3.CSS.