Claudia Chiriță . 2023/2024
var ob = {prop1: val1, prop2: val2, ... , propn: valn};
ob.prop1; // val1
ob["prop1"]; // val1
obiect.prototype
Object.getPrototypeOf() // prototipul obiectului specificat
var cat = {nume:"Tigger", culoare:"neagră", vârstă:14}
var cat = new Object();
cat.nume = "Tigger";
cat.culoare = "neagră";
cat.vârstă = 14;
function cat(n, c, v) {
this.nume = n;
this.culoare = c;
this.vârstă = v;
}
var c1 = new cat("Tigger", "neagră", 14);
var c2 = new cat("Fluff", "albă", 2);
Object.create(ob)
creează un nou obiect, folosind un obiect existent ob ca prototip al obiectului nou creat var interval = {
mx: 2,
my: 4,
apartine: function(z) {
return (z <= this.my) && (z >= this.mx);
}
}; // clasa
var obi = Object.create(interval);
// obiect din clasa interval
obi.mx = 5;
obi.my = 7; // suprascriem proprietățile prototipului
var intervalD = Object.create(interval);
intervalD.apartine = function(z) {
return (z < this.my) && (z > this.mx);
}; // subclasa
var obid = Object.create(intervalD);
obid.mx = 5;
obid.my = 10;
interval.valid = function() {
return (this.my >= this.mx);
};
intervalD.vid = function() {
return (this.mx == this.my);
};
alert(obid.valid()); // true
alert(obid.vid()); // false
function Interval(x, y) {
this.mx = x;
this.my = y;
} // clasa
Interval.prototype.apartine = function(z) {
return (z <= this.my) && (z >= this.mx);
} /* metodă adaugată în prototipul obiectelor
create cu funcția constructor */
var obi = new Interval(1, 4); // obiect din clasa Interval
Interval.prototype.valid = function() {
return (this.my >= this.mx);
};
alert(obi.valid()); // true
definirea subclaselor
function IntervalD(x, y) {
Interval.call(this, x, y);
} // this este obiectul care se construiește
IntervalD.prototype = Object.create(Interval.prototype);
// schimbăm prototipul obiectelor create cu IntervalD
IntervalD.prototype.constructor = IntervalD;
// restaurăm proprietatea constructor
IntervalD.prototype.apartine = function(z) {
return (z < this.my) && (z > this.mx);
};
var obid = new IntervalD(5, 10);
definirea subclaselor
function IntervalD(x, y) {
Interval.call(this, x, y);
}
IntervalD.prototype = Object.create(Interval.prototype);
IntervalD.prototype.constructor = IntervalD;
IntervalD.prototype.apartine = function(z) {
return (z < this.my) && (z > this.mx);
};
IntervalD.prototype.valid = function() {
return (Interval.valid.call(this) && (this.mx != this.my));
}
<?xml version="1.0" encoding="UTF-8"?>
...
<?xml version="1.0" encoding="UTF-8"?>
// elementul rădăcină
// element copil
Piranesi
Susanna Clarke
2020
30.00
Klara and the Sun
Kazuo Ishiguro
2021
29.99
text = "" +"Piranesi " +
"Susanna Clarke " +"2020 " +
" "; // XML ca string
parser = new DOMParser(); // se creează un analizor XML DOM
xmlDoc = parser.parseFromString(text,"text/xml");
// se creează un obiect XML DOM din stringul text
xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;
// extragem informația din nodurile XML DOM
elemente de bază:
Object: {"cheie1":val1, "cheie2":val2}
Array: [val1, val2, val3]
Value: string, number, object, array, true, false, null
date.json
[{"pers": {"nume":"Klara", "varsta":12} },
{"pers": {"nume":"Josie", "varsta":14} } ]
"nume":"Klara"
string, number, obiect (JSON), array, boolean, null
nu poate fi function, date, undefined
{"nume":"Klara", "varsta":12, "porecla":"Robo"}
JSON String: { "nume":"Klara" }
JSON Number: { "varsta":12 }
JSON Object: { "pers": { "nume":"Josie", "varsta":14 } }
JSON Array: { "copii": [ "Klara", "Josie", "Rick" ] }
JSON Boolean: { "robot": true }
JSON null: { "porecla": null }
myObj = { "cheie1":val1, "cheie2":val2, "cheie3":val3 }
myObj.cheie1
myObj["cheie1"]
var myObj = { "copil":"Klara", "varsta":12, "robot":true };
for (x in myObj) {
document.getElementById("prop").innerHTML += x + "
";
}
<p id="prop"></p>
paragraful va conține: var myObj = { "copil":"Klara", "varsta":12, "robot":true };
for (x in myObj) {
document.getElementById("val").innerHTML += myObj[x]+ " ";
}
<p id="prop"></p>
paragraful va conține: Klara 12 true myObj = { "nume":"Klara",
"varsta":12,
"componente": {"baterie:"solara", "motoare":"10"} }
myObj.componente.motoare // 10
myObj.componente["motoare"] // 10
myObj = { "nume":"Klara",
"varsta":12,
"componente": {"baterie":"solara", "motoare":"10"} }
myObj.componente.motoare="11";
delete myObj.componente.baterie;
[val1, val2, ...., valn]
val1,...,valn pot fi string, number, object, array, boolean, null
myObj = { "nume":"Klara",
"varsta":12,
"componente": ["baterie", "motoare", "senzori"} }
accesarea valorilor:
myObj.componente[0] // baterie
myObj = { "nume":"Klara",
"varsta":12,
"componente": ["baterie", "motoare", "senzori"] }
iterarea valorilor în Array:
for (i in ob.componente){ x += ob.componente[i]; }
for (i = 0; i < ob.componente.length; i++) {
x += ob.componente[i];
}
JSON.stringify(valoare)
// transformă un obiect JavaScript într-un string JSON
JSON.parse(text)
// transformă un string JSON într-un obiect JavaScript
poate fi folosit pentru memorare în
localStorage și sessionStorage
var o1 = {copil: {nume:"Klara", varsta:12}},
o2 = {copil: {nume:"Josie", varsta:14}},
o = [o1,o2];
var s = JSON.stringify(o);
// "[{"copil":{"nume":"Klara","varsta":12}},{"copil":{"nume":"Josie","varsta":14}}]"
localStorage.setItem("myarray", s);
var st = localStorage.getItem("myarray");
var jo = JSON.parse(st);
var xhr = new XMLHttpRequest()
open() // creează cererea
send() // trimite cererea
readyState // starea cererii (0,1,2,3,4)
onreadystatechange
// funcția care se execută la schimbarea stării cererii
status // codul de stare HTTP (200 OK)
responseText
// răspunsul primit de la server în format text
responseXML
// răspunsul primit de la server în format XML
open( method, url, async ) // specifică tipul de cerere
/* method: poate fi GET sau POST
url: adresa serverului
async: true (asynchronous) sau false (synchronous) */
send() // trimite cererea către server ( GET )
send(date) // trimite cererea către server ( POST )
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://localhost:3000/test.txt", true);
xhr.send();
xhr.onreadystatechange = nume-functie;
<?xml version="1.0" encoding="UTF-8"?>
var xml = httpRequest.responseXML;
var vpers= xml.getElementsByTagName('pers');
alert(vpers[0].getAttribute('nume'));
cu JSON?
cu FormData
promise = new Promise( function(resolve, reject) {
/* cod producător care se execută asincron:
setInterval, setTimeout, cereri Ajax, evenimente */
resolve(value) // pentru succes
reject(error) // pentru eroare
} );
// cod consumator care așteaptă rezultatul
promise.then(function (value) { /* cod pentru succes */ },
function(error) { /* cod pentru eroare */ })
.catch(function(error) { /* tratarea erorii */ })
const promise = fetch(url, [options]);
/* întoarce o promisiune folosită pentru a obține
răspunsul de la server
url: adresa url a severului
options: method, headears, body (opționale) */
const promise = fetch(url, [options]);
promise.then(function(response) {
return response.text();
});
/~\
(O O)
_\=/_ întrebări?
/ _ \
//|/.\|\\
|| \_/ ||
|| |\ /| ||
# \_ _/ #
| | |
| | |
[]|[]
| | |
/_] [_\