Obiecte JavaScript
În JavaScript, obiectele sunt rege. Dacă ați înțeles obiecte, înțelegeți JavaScript.
În JavaScript, aproape "everything" este un obiect.
- Booleans pot fi obiecte (or primitive data treated as objects)
- Numbers pot fi obiecte (or primitive data treated as objects)
- Strings pot fi obiecte (or primitive data treated as objects)
- Dates sunt obiecte întotdeauna
- Maths sunt obiecte întotdeauna
- Regular expresii sunt obiecte întotdeauna
- Arrays sunt obiecte întotdeauna
- Functions sunt obiecte întotdeauna
- Objects sunt obiecte
În JavaScript, toate valorile, cu excepția valorilor primitive, sunt obiecte.
Valorile primitive sunt: siruri de caractere ("John Doe") , numere (3.14), true, false, null și undefined .
Obiectele sunt variabile care conțin variabile
Variabilele JavaScript pot conține valori unice:
Obiectele sunt variabile prea. Dar obiectele pot conține mai multe valori.
Valorile sunt scrise ca nume: perechi de valori (nume și valori separate prin două puncte).
Exemplu
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Încearcă - l singur » Un obiect JavaScript este o colecție de valori numite
Proprietăți obiect
Valorile numite, în obiecte JavaScript, sunt numite proprietăți.
Proprietate | Valoare |
---|---|
firstName | John |
lastName | Doe |
age | 50 |
eyeColor | blue |
Obiectele scrise ca perechi de valori nume sunt similare cu:
- în PHP matrice asociativă
- Dicționare în Python
- tabele de dispersie în C
- Harta Hash în Java
- Hashes în Ruby și Perl
Metodele Obiectului
Metodele sunt acțiuni care pot fi efectuate pe obiecte.
Proprietățile obiect poate fi atât valori primitive, alte obiecte și funcții.
O metodă obiect este un obiect de proprietate care conține definiția unei funcții.
Proprietate | Valoare |
---|---|
firstName | John |
lastName | Doe |
age | 50 |
eyeColor | blue |
fullName | function() {return this.firstName + " " + this.lastName;} |
obiecte JavaScript sunt containere pentru valori numite, denumite proprietăți și metode.
Vei afla mai multe despre metodele în capitolele următoare.
Crearea unui obiect JavaScript
Cu JavaScript, puteți defini și de a crea propriile obiecte.
Există moduri diferite de a crea noi obiecte:
- Definirea și de a crea un singur obiect, folosind un obiect literal.
- Definirea și de a crea un singur obiect, cu noul cuvânt cheie.
- Definiți un constructor obiect, și apoi a crea obiecte de tip construite.
În ECMAScript 5, un obiect poate fi , de asemenea , create cu funcția de Object. create() Object. create() .
Utilizarea unui obiect Literal
Acesta este cel mai simplu mod de a crea un obiect JavaScript.
Folosind un obiect literal, amândoi definiți și de a crea un obiect într-o singură declarație.
Un literal obiect este o listă de nume: perechi de valori (like age:50 ) în interiorul acolade {} .
Următorul exemplu creează un nou obiect JavaScript cu patru proprietăți:
Exemplu
var
person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Încearcă - l singur » Spațiile și pauzele de linie nu sunt importante. O definiție obiect se poate întinde pe mai multe linii:
Exemplu
var person = {
firstName:"John",
lastName:"Doe",
age:50,
eyeColor:"blue"
};
Încearcă - l singur » Utilizarea JavaScript nou pentru cuvinte cheie
Exemplul următor creează, de asemenea, un nou obiect JavaScript cu patru proprietăți:
Exemplu
var
person = new Object();
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";
Încearcă - l singur » Cele două exemple de mai sus face exact același lucru. Nu este nevoie de a utiliza new Object() .
Pentru simplitate, lizibilitatea și viteza de execuție, utilizați prima (the object literal method) .
Utilizarea unui obiect Constructor
Exemplele de mai sus sunt limitate în multe situații. Ele creează doar un singur obiect.
Uneori ne place să avem un "object type" de "object type" , care poate fi folosit pentru a crea mai multe obiecte de un singur tip.
Modul standard de a crea un "object type" de "object type" , este de a utiliza o funcție de obiect constructor:
Exemplu
function person(first, last, age, eye) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eye;
}
var
myFather = new person("John", "Doe", 50, "blue");
var myMother = new person("Sally", "Rally", 48, "green");
Încearcă - l singur » Funcția de mai sus (person) este un constructor obiect.
Odată ce aveți un constructor obiect, puteți crea noi obiecte de același tip:
var myFather = new person("John", "Doe", 50, "blue");
var myMother = new person("Sally", "Rally", 48, "green");
this cuvinte cheie
În JavaScript, lucru numit this , este obiectul care "owns" codul JavaScript.
Valoarea this , atunci când este utilizat într - o funcție, este obiectul care "owns" funcția.
Valoarea this , atunci când este utilizat într - un obiect, este obiectul însuși.
this cuvânt cheie într - un constructor obiect nu are o valoare. Este doar un substitut pentru noul obiect.
Valoarea this va deveni noul obiect atunci când constructorul este folosit pentru a crea un obiect.
Rețineți că acest lucru nu este o variabilă. Este un cuvânt cheie. Nu se poate schimba valoarea this .
Built-in JavaScript Constructorilor
JavaScript are constructori încorporate pentru obiecte native:
Exemplu
var x1 = new Object(); // A new Object object
var x2 = new String(); // A new String object
var x3 = new Number(); // A new Number object
var x4 = new Boolean() // A new Boolean object
var x5 = new Array(); // A new Array object
var x6 = new RegExp(); // A new RegExp object
var x7 = new Function(); // A new Function object
var x8 = new Date(); // A new Date object
Încearcă - l singur » Math() obiectul nu este în listă. Math este un obiect la nivel mondial. Noul cuvânt cheie nu poate fi utilizat pe Math.
Știați?
După cum puteți vedea, JavaScript are obiecții versiuni ale tipurilor de date primitive String, numărul și Boolean.
Nu există nici un motiv pentru a crea obiecte complexe. Valorile primitive executa mult mai repede.
Și nu există nici un motiv de a utiliza noi Array() . Utilizați literals matrice în loc: []
Și nu există nici un motiv de a utiliza noi RegExp() . Utilizați literals model în loc: /()/
Și nu există nici un motiv de a utiliza noi Function() . Utilizați expresii funcționale în loc: function () {} .
Și nu există nici un motiv pentru a utiliza new Object() . Utilizați literals obiect în loc: {}
Exemplu
var x1 = {}; // new object
var x2 = ""; // new primitive string
var x3 = 0; // new primitive number
var x4 = false; // new primitive boolean
var x5 = []; // new array object
var x6 = /()/ // new regexp object
var x7 = function(){}; // new function object
Încearcă - l singur » Obiectele JavaScript sunt mutabil
Obiectele sunt mutabile: Acestea sunt abordate prin referință, nu de valoare.
În cazul în care y este un obiect, următoarea declarație nu va crea o copie a y:
var x = y; // This will not create a copy of y.
Obiectul x nu este o copie a lui y. Este y. X și y puncte la același obiect.
Orice modificare a y se va schimba, de asemenea, x, pentru că x și y sunt același obiect.
Exemplu
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}
var x = person;
x.age = 10; // This will change both x.age and person.age
Încearcă - l singur »