Это потому, что он находится внутри объекта. Object Literals
имеют свои свойства, определенные следующим образом:
{
name: value,
//OR
'name': value
}
Где значением может быть почти что угодно, например число, строка, функция или даже другой объект. В JavaScript вы также можете объявить anonymous functions
и присвоить их переменной. Фактически, следующие объявления имеют одинаковый эффект:
//declares the myFunc1 function
function myFunc1() {}
//declares an anonymous function and assigns it to myFunc2
var myFunc2 = function() {};
//you can now call either like so:
myFunc1();
myFunc2();
Итак, комбинируя эти два понятия, если у меня есть объект и я хочу, чтобы одно из его свойств было функцией, я бы сделал это так:
var myObj = {
name: 'My Object',
init: function() {
return 'Initializing!';
},
version: 1.0
};
alert(myObj.init());
Затем вы получите вывод: Initializing!
. Обязательно ознакомьтесь с отличной документацией и учебными пособиями по Mozilla Developer Network , включая их JavaScript Tutorial Series
Надеюсь, это поможет!