Ca sa definiti o clasa in JavaScript, se poate folosi direct declaratia clss
cu numele clasei.
class numeClasa { constructor(params){ //proprietati } //metode }
let varClasa = class { constructor(params){ //proprietati } //metode }Diferenta este faptul ca "varClasa" este o variabila, valoarea ei poate fi schimbata.
new
).
let obj = new numeClasa(argumente); //sau let ob2 = new varClasa(argumente);
constructor()
, folosind cuvantul: this
.<div id='ex_res'>Aici e afisat rezultatul.</div> <script> class Rectangle { //primeste doua argumente la crearea unui obiect al clasei constructor(width, height){ //setare proprietati this.width = width; this.height = height; } //o metoda simpla, foloseste proprietatile definite in constructor area(){ return this.width * this.height; } //alta metoda (primeste un argument); ca sa vedeti cum se apeleaza o metoda in alta multipliArea(n){ return this.area() *n; } } //utilizare, creare instanta de obiect a clasei, cu new let ob_rect = new Rectangle(5, 3); //preia valorile returnate de metodele area() si multipliArea() var area = ob_rect.area(); var m_area = ob_rect.multipliArea(3); //adauga in elementul html #ex_res valorile de la area si m_area document.getElementById('ex_res').innerHTML ='area() method returned: '+ area +'<br>multipliArea(3) returned: '+ m_area; </script>
static
.O metoda statica nu poate fi apelata cu "this", nici prin numele instantei de obiect.
<div id='ex2_res'>Aici e afisat rezultatul.</div> <script> class User { //primeste un nume de user cand se creaza un obiect de clasa constructor(user){ //setare proprietate this.user = user; } //metoda statica static Hello(name){ return 'Hello '+ name; } //metoda standard, ca sa vedeti cum se apeleaza o metoda statica in clasa titleHello(){ var re = User.Hello(this.user); return '<h2>'+ re +'</h2>'; } } //utilizare, creaza un obiect al clasei let ob_usr = new User('MarPlo'); //adauga in elementul html #ex2_res valoarea returnata de titleHello() document.getElementById('ex2_res').innerHTML = ob_usr.titleHello(); //preia valoarea returnata de metoda statica (folosind numele clasei) var hello = User.Hello('Peace'); alert(hello); </script>
<div id='ex_hi1'>#ex_hi1 div</div> <div id='ex_hi2'>#ex_hi2 div</div> <script> class Test { constructor(name){ this.name = name; } //adauga 'Helo name' in elementul HTML #id addHello(id){ document.getElementById(id).innerHTML ='<h3>Hello '+ this.name +'</h3>'; } } //prima instanta de obiect let ob1 = new Test('Happines'); ob1.addHello('ex_hi1'); //apeleaza metoda cu ID-ul unui Div //a doua instanta de obiect let ob2 = new Test('Peace'); var hi2 = ob2.addHello('ex_hi2'); //apeleaza metoda cu alt ID </script>
get
.set
.<div id='ex3_res'>Aici e afisat rezultatul.</div> <script> class Article { constructor(){ this.th1 ='No title'; } //getter, returneaza valoarea proprietatii th1 setata in setter get title(){ return this.th1; } //setter, e apelata cand o valoare (val) e atribuita proprietatii: title set title(val){ if(val !='') this.th1 ='<h1>'+ val +'</h1>'; } } //creaza obiect al clasei let ob_art = new Article(); //seteaza o valoare proprietatii: title //aceasta va apela automat metoda setter title() cu valoarea ca argument ob_art.title ='MarPlo.net - Clase JS'; //acest cod apeleaza automat metoda getter: title() var th1 = ob_art.title; //adauga in elementul html #ex3_res valoarea de la th1 document.getElementById('ex3_res').innerHTML = th1; </script>
<form action="script.php" method="post"> ... </form>
#id { background-color: #bbfeda; box-shadow: 11px 11px 5px #7878da; }
var fruits = ["mar", "cireasa", "banana"]; fruits.shift(); alert(fruits.length); // 2
if(extension_loaded("PDO") === true) echo "PDO este valabil."
Can I listen to music? - Pot asculta muzica?
Me gustan las frutas dulces. - Imi plac fructele dulci.