Objektų palyginimas OOP JavaScripte
Pažiūrėkime, kaip lyginami kintamieji, kuriuose yra objektai. Du kintamieji bus laikomi lygiais, jei jie talpina nuorodą į tą patį objektą. Pažiūrėkime praktiškai. Tarkime, kad turime šią klasę:
class User {
constructor(name) {
this.name = name;
}
}
Sukurkime du šios klasės objektus:
let user1 = new User('1');
let user2 = new User('2');
Palyginkime kintamuosius, kuriuose yra nuoroda į tą patį objektą:
console.log(user1 === user1); // true
O dabar palyginkime kintamuosius, kuriuose yra nuoroda į skirtingus objektus:
console.log(user1 === user2); // false
Pasakykite, koks bus rezultatas palyginimo šiame kode:
class Employee {
constructor(name) {
this.name = name;
}
}
let emp1 = new Employee('john');
let emp2 = new Employee('eric');
console.log(emp1 === emp2);
Pasakykite, koks bus rezultatas palyginimo šiame kode:
class Employee {
constructor(name) {
this.name = name;
}
}
let emp1 = new Employee('john');
let emp2 = new Employee('eric');
console.log(emp1 === emp1);
Pasakykite, koks bus rezultatas palyginimo šiame kode:
class Employee {
constructor(name) {
this.name = name;
}
}
let emp1 = new Employee('john');
let emp2 = new Employee('john');
console.log(emp1 === emp2);
Pasakykite, koks bus rezultatas palyginimo šiame kode:
class Employee {
constructor(name) {
this.name = name;
}
}
let emp1 = new Employee('john');
let emp2 = new Employee('eric');
console.log(emp1 !== emp1);
Pasakykite, koks bus rezultatas palyginimo šiame kode:
class Employee {
constructor(name) {
this.name = name;
}
}
let emp1 = new Employee('john');
let emp2 = emp1;
console.log(emp1 === emp2);
Pasakykite, koks bus rezultatas palyginimo šiame kode:
class Employee {
constructor(name) {
this.name = name;
}
}
let emp1 = new Employee('john');
let emp2 = new Employee('eric');
console.log(emp1 !== emp2);
Pasakykite, koks bus rezultatas palyginimo šiame kode:
class Employee {
constructor(name) {
this.name = name;
}
}
let emp1 = new Employee('john');
let emp2 = emp1;
emp2.name = 'eric';
console.log(emp1 === emp2);