Kezdőoldal » Számítástechnika » Programozás » Javascriptben ez, hogy van?

Javascriptben ez, hogy van?

Figyelt kérdés

Sziasztok az alábbi kérdésem lenne.


this.valami = function();

//itt mi a különbség, nem nagyon értem.

function();


Tehát a sima function vagy a this-es function között mi a különbbség?


2018. okt. 24. 19:35
 1/8 anonim ***** válasza:
Az, hogy ez nem egy általános function, hanem az objektum egy tagfüggvénye.
2018. okt. 24. 20:09
Hasznos számodra ez a válasz?
 2/8 A kérdező kommentje:
Kifejtenéd,ha megkérhetlek,és van időd, energiád, köszönöm.
2018. okt. 24. 20:10
 3/8 anonim ***** válasza:
2018. okt. 24. 20:19
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:

A this mutat az adott objektumra. A rend kedvéért, ez egy objektum:


let petike = {

firstName: "Petike",

lastName: "Peterson"

}


Van két adattagja, a firstName, és a lastName, amit úgy érsz el, hogy petike.firstName, és petike.lastName. Viszont egy objektumnak lehet tagfüggvénye is:



let petike = {

firstName: "Petike",

lastName: "Peterson",

introduce: function(){ console.log("My name is "+this.firstName+" "+this.lastName) }

}


Így a petike objektumon már van egy introduce függvény is, amit ha meghívsz (jól gondolod, petike.introduce()), akkor bemutatkozik a konzolra. Mint látod, a függvényen belül this.firstName és this.lastName volt használva, ugyanis a petike objektumon belül a this kulcsszóval hivatkozol saját magára. Ez az egész akkor válik fontossá, amikor elkezdesz 'osztályokat' létrehozni, amit tetszőleges számban tudsz példányosítani, vannak publikus és privát adattagjai, stb stb. De az már egy pár fokozattal későbbi témakör.

2018. okt. 24. 20:44
Hasznos számodra ez a válasz?
 5/8 A kérdező kommentje:

Az a baj igy sem ertem meg...

az a problema hogy maga a fuggveny letrehozasos metodust ertem...

de amikor elotte van hogy this.car = function().

akkor az elso reszet nem ertem mire mutat az a this?

:/ remelem ertitek hogy mit nem ertek benne

2018. okt. 25. 05:56
 6/8 anonim ***** válasza:

Oké, újabb példa:


Person = function(fn, ln){

var firstName = fn;

var lastName = ln;

this.introduce = function(){return firstName+' '+lastName;}

}


let petike = new Person("Péter", "Peterson")


Amit fent látsz, az egy konstruktorfüggvény, lényegében arra használjuk, hogy objektumokat hozzunk létre, jelen esetben egy Person típust írunk le vele, aminek van firstName, lastName mezője, és egy introduction metódusa. Namost, észreveheted, hogy a két adattag előtt 'var' áll, a metódus előtt viszont 'this'. Mi a különbség? Mindkét változattal az objektumhoz adunk hozzá adattagokat/metódusokat, viszont a var kulcsszóval lokális (és privát) változókat hozol létre, amiket csak az objektumon belül érsz el (kipróbálhatod, a petike.firstName undefined-ot fog visszaadni), míg a this-el deklarált metódust publikusan is el fogod érni, így meg tudod hívni a petike.introduce() metódust, és szépen be fog mutatkozni. Ha úgy deklarálnám, hogy 'function introduce', akkor ez is csak az objektumon belül lenne látható, és használható. Lényegében ez a this lényege, hogy az aktuális objektum property-jeit tudod elérni, vagy beállítani. Ha nem egy objektumon belül hasnálod, akkor a globális objektumot éred el vele, ide kerülnek többek között a globális változóid.

2018. okt. 25. 07:37
Hasznos számodra ez a válasz?
 7/8 anonim ***** válasza:

this az önmagára mutat (én).


class Orszag {


protected = $megyek; //megyék

protected = $telepulesek;


public function __construct() {

$this->megyek = ['Pest', 'Somogy']

$this->telepulesek = ['Kispest', 'Kazincbarcika'];

}


public function get_megyek()

{

return $this->megyek;

}


}


$orszag = new orszag();

var_dump( $orszag->get_megyek() );


De, szerintem nem itt kéne kezdened a tanulást.

2018. okt. 28. 01:34
Hasznos számodra ez a válasz?
 8/8 anonim ***** válasza:
#7 Neked meg nem biztos hogy php kóddal kéne összezavarnod a kérdezőt.
2018. okt. 28. 09:22
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!