Quay lại
Featured image of post 'this' keyword trong Javascript

'this' keyword trong Javascript

'this' keyword trong javascript là gì, chi tiết về 'this' trong function, object, call, bind, apply như thế nào

‘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

thisgiá 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ính element (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
    

Bình luận sử dụng Facebook hoặc Google bên dưới nhé :)