TOC

This article has been localized into Czech by the community.

Objekty:

Metody

V této kapitole o objektech JavaScriptu jsme se doposud soustředili především na vlastnosti. Avšak také jsem zmínil, že vlastnosti mohou obsahovat složitější typy, jako jsou jiné objekty, nebo dokonce funkce. Jinými slovy, můžeme k našim objektům snadno přidávat funkce.

Jakmile je funkce deklarována na objektu nebo třídě, označuje se jako metoda. V tomto článku vám ukážu, jak přidat metody k vašim objektům.

Metody objektu

Když vytvoříte objekt, můžete k němu jednoduše přidat metodu tak, že deklarujete vlastnost a přiřadíte funkci jako její hodnotu, takto:

let user = 
{
	name: "John Doe",
	age: 42,
	describe: function() 
	{
	}
};

Všimněte si, jak deklaruji několik jednoduchých vlastností (jméno a věk) a poté vlastnost, kterou nazývám popis, která má funkci jako svou hodnotu. Uvnitř této funkce můžeme snadno interagovat s vlastnostmi objektu pomocí klíčového slova this. Zde je příklad objektu s vlastnostmi a metodou:

let user = 
{
	name: "John Doe",
	age: 42,
	describe: function()
	{
		return this.name + " is " + this.age + " years old";
	}
};

alert(user.describe());

Vlastnost describe nyní odkazuje na kompletní funkci, která bude využívat další vlastnosti objektu. Při použití této metody v posledním řádku příkladu, voláme metodu stejně, jako bychom to dělali s jakoukoli jinou funkcí.

Jak jsme viděli v předchozím článku, vlastnosti mohou být přidány k objektu po jeho vytvoření, a protože metody objektu jsou jen vlastnosti odkazující na funkce, je to samozřejmě možné i u metod. Zde je přepsaná verze výše uvedeného příkladu:

let user = 
{
	name: "John Doe",
	age: 42	
};

user.describe = function()
{
	return this.name + " is " + this.age + " years old";
}

alert(user.describe());

Stejně jako u jakékoli jiné vlastnosti, můžeme metodu přidat jednoduše odkazem na nový název vlastnosti a přiřazením hodnoty k ní (v tomto případě funkce).

A jen abychom to měli naprosto jasné, metody objektů mají stejné výhody jako běžné funkce JavaScriptu, které byly podrobně popsány v předchozí kapitole. Například mohou přijímat libovolný počet parametrů, které budou metodou použity. Zde je příklad:

let user = 
{
	name: "John Doe",
	age: 42,
	describe: function(country)
	{
		return this.name + " is " + this.age + " years old and currently lives in " + country;
	}
};

alert(user.describe("Germany"));

Zkrácená syntaxe metody

Ve specifikaci ES6 JavaScriptu byla představena kratší syntaxe pro deklaraci metod objektů. Tato syntaxe je více v souladu s jinými programovacími jazyky, stejně jako se syntaxí používanou pro metody tříd. V podstatě skrývá fakt, že metoda objektu je jen vlastnost s přiřazenou funkcí. Takto by to mohlo vypadat:

let user = 
{
	name: "John Doe",
	age: 42,
	describe()
	{
		return this.name + " is " + this.age + " years old";
	}
};

alert(user.describe());

Všimnete si, že s touto syntaxí můžeme vynechat klíčové slovo function - JavaScript pozná, že se jedná o metodu, díky závorkám následujícím za názvem. Opět jde jen o syntaktickou zkratku - dosahuje přesně toho samého, co příklady výše, takže můžete použít syntaxi, která vám vyhovuje.

Shrnutí

Díky všestranné povaze vlastností objektů v JavaScriptu můžeme k našim objektům přidávat funkce. Kdykoli je funkce deklarována na objektu nebo třídě, označuje se jako metoda a tímto způsobem se naše objekty stávají více než jen kontejnery pro data - mohou skutečně něco dělat.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!