Obiecte în exemplele javascript

Următoarele două opțiuni pentru crearea de obiecte sunt echivalente:

Există două sintaxe adăuga proprietăți la obiect. Primul - un punct, al doilea - parantezele pătrate:

paranteze pătrate sunt utilizate în principal în cazul în care numele proprietății este într-o variabilă:

Aici, pe numele proprietății „test“ este cheia într-un tablou asociativ, în care valoarea este de 5.

Accesul la proprietate se realizează în același mod:

În cazul în care obiectul nu are o astfel de proprietate, rezultatul este „nedefinit“

Nici o eroare nu va fi de manipulare bunuri inexistente, pur și simplu returna valoarea specială nedefinită.

Verificarea variabila globală

Soluție comună - utilizare typeof:

Șterge operatorul de proprietate șterge:

Proprietățile pot fi specificate în mod direct la crearea unui obiect, printr-o listă în acolade de forma:

Obiectul rezultat poate fi reprezentat după cum urmează:

De exemplu, creați un obiect cu o metoda run iepure

Adăugarea unei metode a unui obiect - o funcție de atribuire a funcției (n) rabbit.run proprietate.

Acum puteți rula

Nu există nici o întrebare despre clase, crearea de instanțe, și altele asemenea. Doar - în orice obiect, în orice moment, puteți adăuga o nouă metodă sau șterge unul existent.

În mod normal, ar fi de dorit ca metoda nu este doar chemat de la obiect, dar a avut acces la obiectul în sine, ar putea schimba datele prezente acolo.

Pentru a face acest lucru, utilizați cuvântul cheie acest lucru:

Spre deosebire de multe limbi, this nu au nicio legătură cu obiectul, și înseamnă pur și simplu obiectul care a cauzat funcția.

Pentru mai multe informații cu privire la modul în care funcționează pot fi găsite în acest articol.

Pentru a itera toate proprietatile unui obiect folosind un tip special de proiectare pentru. for..in:

Este dincolo de domeniul de aplicare al prezentului articol, dar, în general - există o altă formă de proprietăți busting, care este mai fiabil, mai ales dacă folosiți o bibliotecă, cum ar fi prototip.

Această formă filtrează proprietăți care nu fac parte din obiectul în sine și prototipul acestuia. Deci, funcționează chiar și în cazul în care au fost adăugate obiectului prototip proprietăți noi.

O versiune mai sofisticată a înregistrării:

  • versiune printabilă

Are articol, acest exemplu este confuz:

Pentru a face acest lucru, utilizați cuvântul cheie acest lucru:

Și am vrut să întreb. Deci, fac apel la proprietățile obiectului ale metodei:

Fie că tratamentul este posibilă fără ca acest lucru?

Alo Sarcina mea este de a avea acces la variabilele de pe pagina, ci mai degrabă la variabilele de clasă. În acest scop, am sorteze un ciclu pentru. în toate proprietățile obiectului fereastră:

  1. var ClassA = function ()
  2. >
  3. var a = new ClassA ();
  4. var b = new ClassA ();
  5. var z = new Date ();
  6. pentru (var k in fereastra)
  7. dacă (typeof (fereastra [k]) == "obiect" fereastra [k] instanceof ClassA)
  8. alert ( 'variabilă' + K + 'este un ClassA');
  9. >
  10. >

Script-ul de operă și de crom lucra dreapta, găsește variabile a și b. Nu se poate spune despre IE, care este pur și simplu o eroare pe linia 9, „presupune existența obiectului.“ Se pare că IE pur și simplu nu vede aceste variabile într-o buclă. În același timp, am nevoie pentru a script-ul a mers în conformitate cu IE.
Care ar putea fi problema?

Acesta este un punct foarte bun!

Numai că a venit peste și experimentat o surpriză neplăcută - a fost sigur de a js, atât în ​​limba normale, operatorul „=“ atribuie partea dreapta a stânga și nimic mai mult.

Ajuta la rezolvarea următoarea problemă!

Am creat obiectul.
Am alerga prin matrice (nu la obiect) ciclu. Elementele de matrice conțin șirul, care este de obicei repetat de mai multe ori, uneori, într-o serie de câteva rânduri diferite.

proprietate Mai mult, un obiect este creat conține o serie de două elemente - aceasta în cazul proprietăților obiectului nu există încă, sau este stocat într-o nouă matrice este șters proprietatea și din nou generate cu valoarea noii matrice, care este încorporat în nivelul următor (altul nou array) etc.

Astfel, acesta ar trebui să primească de circuit de tip:

Svoystvo1: [string, obiect]
Property2: [string, obiect]
Property2: [[string, obiect], [șir, obiect]]
Property2 [[obiect string] [obiect string] [obiect string]]
Svoystvo3: [string, obiect]
Svoystvo4: [string, obiect]
.

Deci, asta în cazul în care matrice multi-dimensionale, ultimul element de matrice nu este disponibilă. și anume alert (Object [property2]) emite numai ultimul matrice cuibărit (2).

Funcția replace_string (j1, j2, j3) var f = 0;
var it = '';
it = l + j1;
f = it.indexOf (j2);
(! F = - 1) în timp ce f = it.indexOf (j2);
dacă (f> 0) it = it.substr (0, f) + j3 + it.substr (f + j2.length);
>;
>;
returnați-l
>;
old_str = "Fedorov Fedor Fedorovich";
new_str = replace_string (old_str, "e", "E");
alert (new_str);

tipi ca să aduc aici o linie suplimentară, care va imprima numărul de algoritmi dedicat acestei funcții și anume prin înlocuirea literelor cu mici pentru a mari)