Understand JavaScript - Building Object


Ở bài trước mình có giới thiệu về Object và Prototype , Prototype Inheritance và Property Object đã đến lúc nói sâu hơn về việc xây dựng các object , trong các bài  trước mình có thường khởi tạo các object bằng object - literal tuy nhiên có một vài cách bạn khởi tạo đối tượng nữa , đặc biệt là khi bạn thiết lập Prototype.

Bạn hãy quan sát đoạn code sau :


Mình đơn giản không chỉ gọi hàm Person , mình còn đặt từ khóa new ở trước nó nữa.
Ở dòng số 5 đơn giản là mình xây dựng một đối tượng theo cách khác.
=> Dù bạn tạo đối tượng bằng cách nào bạn cũng cần cung cấp cho nó các Property và thiết lập nguyên mẫu của nó.

- Toán tử new , khi chúng ta sử dụng new một điều đặc biệt thực sự xảy ra
=> Đầu tiên một object trống được tạo ra và sau đó nó gọi hàm Person
=> Khi hàm được gọi một EC mới được tạo ra và biến this trong trường hợp bạn dùng toán tử new nó sẽ thay đổi object mà biến this này trỏ đến , biến this này sẽ trỏ đến đối tượng trống đó..

=> Tóm lại : toán tử new tạo ra một object trống , sau đó hàm được gọi , biến this của hàm này trỏ về đối tượng trống vừa được new tạo ra.
Biến this trỏ đến vùng nhớ của object trống trên bộ nhớ khi mình sử dụng this.firstname và this.lastname mình đã thêm các property này vào object trống đó .

Bạn chú ý rằng miễn là hàm Person , hàm mà mình gọi sau khi dùng new mà nó không return một object nào , JSE sẽ trả về một Object mà được tạo bởi new và các biến hay hàm được sử dụng với this sẽ được gán thành property của object.

Đây là trường hợp mà bạn trả về object trong hàm person .


Kết quả :




Như vậy mình tạo ra một object mới sau đó gọi hàm và biến this của hàm này trỏ đến object vừa được tạo và bất cứ khi nào mình sử dụng object mà sử dụng biến this , nó sẽ được thêm vào property của object trống đó.

Đây là cách bạn xây dựng một object bằng function contructor  ,một cách rất phổ biến và linh hoạt giúp bạn tạo ra nhiều object nó là nền tảng cho OOP trong JS.


Nhận xét

Bài đăng phổ biến