Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вопрос по странному присвоению функции (https://javascript.ru/forum/misc/46204-vopros-po-strannomu-prisvoeniyu-funkcii.html)

ArriWei 01.04.2014 17:34

Вопрос по странному присвоению функции
 
Не могу понять, что делает вот эта строчка в коде
bob.setAge = setAge;
Может мне кто-нибудь доходчиво объяснить? Буду благодарен за ответ.

var bob = {
        name: "Bob Smith",
        age: 15
    };

    var frank = {
        name: "Frank Wolf",
        age: 32
    };

    function setAge(newAge) {
        this.age = newAge;
    }

    bob.setAge = setAge;
    bob.setAge(23);

jsnb 01.04.2014 17:43

Создает свойство setAge в объекте bob и присваивает ему ссылку на функцию setAge... Таким образом создается метод setAge в объекте bob. Само название метода могло быть любым, например:
bob.setBobAge = setAge;
bob.setBobAge(23);

ArriWei 01.04.2014 18:04

Получается, что
setBobAge
это поле? Или все же метод?

jsnb 01.04.2014 18:08

Цитата:

Сообщение от ArriWei (Сообщение 305474)
Получается, что
setBobAge
это поле? Или все же метод?

Что вы имеете ввиду под "полем"? Метод - это свойство в объекте, являющееся функцией. В JS функция - это объект, поэтому ссылку на нее можно передавать в другие переменные по аналогии с объектами.


Часовой пояс GMT +3, время: 08:39.