‘this’ keyword trong Javascript
this
trong Javascript liên quan đến đối tượng mà nó thuộc về.
Hơi trừu tượng phải không, đừng lo, mình sẽ giải thích rõ hơn ở bên dưới nha.
Tóm lượt về this
this
có giá trị khác nhau khi nó được sử dụng ở các ngữ cảnh khác nhau.
- Khi ở
global scope
, this sẽ có giá trị là global object, trong trình duyệt global object chính là window. - Trong
function
:- this (trong normal mode) sẽ có giá trị là global object.
- this (trong strict mode) sẽ có giá trị là undefined.
- Trong phương thức
object
, this sẽ có giá trị là chính object đó. Ví dụ:const person = { firstName: "Lập trình", lastName: "Dễ òm", id: 1, fullName: function () { return this.firstName + " " + this.lastName; // this là object `person` }, };
- Trong các
sự kiện
, nhưonClick
của button,onChange
của input…, thì this sẽ có giá trị chínhelement
(button/input) đó. Ví dụ:<button onclick="this.style.display='none'">Học lập trình web</button>
- Trong
call
,apply
, thì this có giá trị là bất cứ đối tượng nào được đưa vào trong 2 functions này. Ví dụ:const person1 = { fullName: function () { return this.firstName + " " + this.lastName; }, }; const person2 = { firstName: "Lập trình", lastName: "Dễ òm", }; person1.fullName.call(person2); // this của phương thức fullName trong person1 sẽ là person2