Giải thích sự khác biệt giữa function Person(){}
, var person = Person()
, và var person = new Person()
là gì?
Giải thích sự khác biệt giữa function Person(){}
, var person = Person()
, và var person = new Person()
là gì?
Sự khác biệt giữa function Person(){}
, var person = Person()
, và var person = new Person()
là như sau:
function Person(){}
: Đây là một khai báo hàm bình thường. Cách viết này tạo ra một hàm có tên là Person
. Theo quy ước, việc sử dụng PascalCase (viết hoa chữ cái đầu tiên của mỗi từ) cho tên hàm như vậy ám chỉ rằng hàm này được thiết kế để sử dụng như một hàm tạo (constructor function). Hàm tạo là một hàm đặc biệt được sử dụng để tạo ra các đối tượng mới.var person = Person()
: Câu lệnh này gọi hàm Person
như một hàm bình thường và gán giá trị trả về của hàm cho biến person
. Nếu hàm Person
được thiết kế để sử dụng như một hàm tạo nhưng lại được gọi mà không sử dụng từ khóa new
, thì đây là một sai lầm phổ biến. Trong trường hợp này, thay vì tạo ra một đối tượng mới, hàm sẽ trả về undefined
và giá trị này sẽ được gán cho biến person
. Điều này dẫn đến việc không thể truy cập các thuộc tính của đố...middle
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào