Hvordan arbeide med JavaScriptâ € ™ s Private egenskaper og metoder for å programmere med HTML

December 14  by Eliza

Mange webutviklere er under inntrykk av at Java doesnâ € ™ t gi private eiendommer eller metoder. Dette ISNA € ™ t saken. Ita € ™ s sant at Java betyr mangel på noen bestemt søkeord som angir en bestemt egenskap eller metode som privat, men faktum er fortsatt at det kan opprette og administrere egne medlemmer.

Private medlemmer er alltid laget som en del av en Objecta € ™ s konstruktør. Du kan enten lage egenskaper som et parameter for konstruktøren eller opprette den i konstruktøren selv. Private metoder er nestet i konstruktøren. Følgende kode viser både private eiendommer og en privat metode.

// Param er privat.
funksjon TestObject (param)
{
// ThisString er privat.
ThisString = "abc";

// ChangeString er privat.
funksjon ChangeString (input)
{
returnere input.toUpperCase ();
}
}

Hvis du nå lage en funksjon for å teste dette objekt, for eksempel Create () vist i følgende kode, finner du i at programmet ikke klarer å produsere det ønskede resultat. Faktisk, hvis youâ € ™ re ved hjelp av en redaktør spesielt utviklet for å arbeide med Javascript, youâ € ™ ll finner ut at param, ThisString, og ChangeString () dona € ™ t aften viser opp som mulige valg. Medlemmene er utilgjengelige.

funksjon Create ()
{
Var DoTest = ny TestObject ("def");
document.getElementById ("Resultat"). innerhtml =
DoTest.ChangeString ("def");
}

De private medlemmer av TestObject er også utilgjengelig for noen offentlige metoder som du oppretter. Selvfølgelig, presenterer dette et problem fordi objektet har nå private data Thatâ € ™ s tilsynelatende utilgjengelige for noe, men konstruktøren. Java har et tredje nivå av synlighet kalles privilegert Hereâ € ™ s en privilegert metode for TestObject.:

// MeldData er privilegert.
this.MeldData = function ()
{
returnere ChangeString (ThisString + param);
}

Denne funksjonen er også definert i konstruktøren. Imidlertid, i dette tilfellet, ita € ™ s tilordnet en felles variabel, MeldData, som virker som et sant fremgangsmåte. Din redaktør vil vise det som en metode når du åpner den. Du kan gi det data som enhver annen metode.

Imidlertid er denne metoden privilegert og har full tilgang til private data i TestObject. Hvis du endrer Create () så det ser ut som følgende eksempel, produserer programmet nå ønsket effekt:

funksjon Create ()
{
Var DoTest = ny TestObject ("def");

// Denne koden vil ikke fungere.
//document.getElementById("Result").innerHTML =
// DoTest.ChangeString ("def");

// Denne koden vil.
document.getElementById ("Resultat"). innerhtml =
DoTest.MeldData ();
}