A JavaScript egy objektum-alapú nyelv, melyben a primitív adattípusok kivételével minden objektum, még a függvények is. JavaScriptben az objektumok név-érték párok gyűjteménye, mint például a:

Az ECMAScript az objektumok három kategóriáját különbözteti meg:

Az Internet Explorer böngésző esetén meg kell említeni az ActiveX objektumok (külső komponensek) kategóriát is.

Új objektumot így hozhatunk létre:

var sajatObjektum = new Object();

A fenti kód egy általános (üres) objektumot hoz létre. JavaScriptben minden objektum az Object objektumtól származik. Az Object a JavaScript ős objektum típusa. A fent létrehozott objektumunknak nincsenek attribútumai, se metódusai (Ez így nem teljesen igaz. Minden JavaScript–objektum rendelkezik az Object objektumhoz definiált eljárásokkal és tulajdonságokkal). Az Object valójában egy konstruktor függvény.

Más nyelvektől eltérően JavaScriptben nincsenek kifejezetten osztályok. Objektumokat egyszerű függvények segítségével hozhatunk létre, melyek a new operátorral együtt használva konstruktorként működnek. A bennük lefutó kód hozza létre az objektum tulajdonságait. A függvényen belül ilyenkor a this változó testesíti meg a létrehozandó objektumot, mint azt az alábbi példa mutatja:

function Filter(name, xpathExpression){
    this.name = name;
    this.expression = xpathExpression;
}

var Filter_mufaj = new Filter('mufaj', null);
alert(typeof Filter_mufaj); // Object
alert(Filter_mufaj.name); // mufaj

A következő szintaxis is megengedett:

var o1 = new function (){};

Egy anonim függvényt hozunk létre, majd létrehozzuk annak példányát a new operátorral. A létrejövő objektumot átadjuk az o1 változónak.

JavaScriptben a függvények eléggé szokatlanok, mivel egy függvény létrehozása automatikusan egy Function objektum típusú változót hoz létre. Egy függvény egyben objektum is, hiszen képes metódusokat és tulajdonságokat tárolni:

function myFncObj(){};//egy myFncObj nevű és Function típusú változó jött létre
myFncObj.valamiValtozo = "X";
alert(myFncObj.valamiValtozo); // X

Függvényt létrehozhatunk másképpen is. A JavaScript Function konstruktor függvény segítségével ugyanolyan függvény jön létre (Function object), mint amilyet a fenti kódrészben hoztunk létre.

var fnc1 = new Function ('alert("hi")');
fnc1(); // hi
alert(typeof fnc1); // function

Mivel azonban a létrejövő Function objektum hívható (a fenti kódrészlet 2. sora), a typeof operátor function adattípust ad vissza. További érdekesség, hogy a Function() a new kulcsszó nélkül is Function objektumot hoz létre. A Function() konstruktor egy speciális eset, minden más konstruktor függvényt a new operátorral kell meghívni. A Function() konstruktornak tetszőleges számú paramétert átadhatunk. Az utolsó paraméter a függvény törzse lesz:

function funkcioNeve ([parameter1, [, …[, parameterN]]]])
{
    // törzse
}

funkcioNeve = new Function ([parameter1, [...parameterN,]] "törzs");
Spirituális családállítás