Wat is het verschil tussen this.variable en window.variable

Status
Niet open voor verdere reacties.

poashoas

Gebruiker
Lid geworden
31 mei 2008
Berichten
66
Ik kan niet zo goed vinden op Google wat het verschil is tussen this.variable en window.variable.

Ik had bij een ajax website over 'this' toegepast als ik wilde dat een variabele in een andere functie ook werkte.
Bij mijn portfolio moest ik plotseling 'window' gebruiken omdat 'this.variable' undefined terug gaf
 
'this' is het woord dat je gebruikt om een object aan te geven dat je 'zelf bent'. Bijvoorbeeld:
[JS]var bbq = {}; //bbq is nu een 'object' zoals alles in JS is.

bbq.foo = "grillmeister"; //maak een property in bbq aan dat foo heet
[/JS]
als je 'bbq' zou 'zijn', zou 'this.foo' dus 'grillmeister' zijn.

Dit gebruik je vooral in de wat complexere dingen, zoals zelfgemaakte objecten. Een voorbeeld:
[JS]function bbq()
{
this.foo = "grillmeister";
}

//okay, nu maken we even een nieuwe bbq aan:
zomaariets = new bbq();

alert(zomaariets.foo); //zal 'grillmeister' geven[/JS]


'Window' is net zoals alles in JS dus een object. Het heeft bepaalde properties (zoals scherm hoogte, breedte, etc). maar is voorgedefiniert, door de browser.


Het ligt er aan wat je precies wilt doen, maar ik zou niets kunnen bedenken waarvoor je 'window' zou gebruiken om variabelen globaal te maken - je kan ze gewoon buiten functies definieren.

Overgens kan 'this' dus ook naar 'window' wijzen! Maar zoals eerder gezegd, waarom zo moeilijk doen.
 
Laatst bewerkt:
Thanxs

'this' is het woord dat je gebruikt om een object aan te geven dat je 'zelf bent'. Bijvoorbeeld:
[JS]var bbq = {}; //bbq is nu een 'object' zoals alles in JS is.

bbq.foo = "grillmeister"; //maak een property in bbq aan dat foo heet
[/JS]
als je 'bbq' zou 'zijn', zou 'this.foo' dus 'grillmeister' zijn.

Dit gebruik je vooral in de wat complexere dingen, zoals zelfgemaakte objecten. Een voorbeeld:
[JS]function bbq()
{
this.foo = "grillmeister";
}

//okay, nu maken we even een nieuwe bbq aan:
zomaariets = new bbq();

alert(zomaariets.foo); //zal 'grillmeister' geven[/JS]


'Window' is net zoals alles in JS dus een object. Het heeft bepaalde properties (zoals scherm hoogte, breedte, etc). maar is voorgedefiniert, door de browser.


Het ligt er aan wat je precies wilt doen, maar ik zou niets kunnen bedenken waarvoor je 'window' zou gebruiken om variabelen globaal te maken - je kan ze gewoon buiten functies definieren.

Overgens kan 'this' dus ook naar 'window' wijzen! Maar zoals eerder gezegd, waarom zo moeilijk doen.

Thanx
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan