Вызов функции JavaScript

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

Вызов JavaScript функции

В момент вызова функцииОпределениевнутренний код функции не будет выполняться.

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

Вызов функции также можно сказать «запуск функции» или «выполнение функции».

В этом руководстве мы используем «Вызов

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

Экземпляр

function myFunction(a, b) {
    return a * b;
}
myFunction(10, 2);           // вернет 20

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

Эти функции не относятся к любому объекту. Но в JavaScript всегда существует некий(default) глобальный объект.

В HTML по умолчанию глобальным объектом является сам HTML-страница, все上面的 функции «принадлежат» HTML-странице.

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

myFunction() и window.myFunction() — это одна и та же функция:

Экземпляр

function myFunction(a, b) {
    return a * b;
}
window.myFunction(10, 2);    // также вернет 20

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

Это один из常见ных способов вызова функции, но это не guter習慣.

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

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

в JavaScript известен как this предмет, указывающий на «владение» текущим кодом.

this возвратит значение, в функции используется, это объект, «владеющий» этой функцией.

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

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

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

в веб-браузере глобальным объектом является объект браузера.

в данном примере this возвратит этот объект window:

Экземпляр

var x = myFunction();            // x станет объектом window
function myFunction() {
   return this;
}

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

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

использовать объект window как переменную легко вызвать сбой программы.

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

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

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

Экземпляр

var myObject = {
    firstName: "Bill",
    lastName: "Gates",
    fullName: function () {
        return this.firstName + " " + this.lastName;
    }
}
myObject.fullName();         // Возвратит "Bill Gates"

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

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

называется this предмет, который «владеет» этим фрагментом JavaScript-кода, является объектом. В данном примере,this значение: myObject。

проверим! Измените этот метод fullName, чтобы он возвращает this значение:

Экземпляр

var myObject = {
    firstName: "Bill",
    lastName: "Gates",
    fullName: function () {
        return this;
    }
}
myObject.fullName();          // Возвратит [object Object] (объект владелец)

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

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

Вызов функции через конструктор функции

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

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

Экземпляр

// Это конструктор функции:
function myFunction(arg1, arg2) {
    this.firstName = arg1;
    this.lastName = arg2;
}
// Создан новый объект:
var x = new myFunction("Bill", "Gates");
x.firstName;                             // вернет "Bill"

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

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

Внутри конструктора this Ключевое слово не имеет значения.

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