Vì vậy, về cơ bản
__extends(MyPageView, _super);
Nghĩ về ofinheritance bằng một ngôn ngữ hướng đối tượng. Trường hợp một lớp học đang mở rộng một lớp học Super hoặc một lớp cơ sở ..
Vì vậy, về cơ bản ở đây MyPageView
sẽ mở rộng chức năng và triển khai lớp học siêu hạng.
Vì vậy, giả sử Chế độ xem cơ sở có method A() and method B()
và Chế độ xem hiện tại có phương thức C(), thì chế độ xem hiện tại của bạn có quyền truy cập vào cả ba phương thức A() , B() and C()
trong chế độ xem của nó.
Nhưng cho phép nói MyPageView
có method B()
, được định nghĩa trong nó, sau đó phương pháp bên trong xem sẽ mất precedence over the Method B() of Super View
var __extends = this.__extends || function (d, b) {
function __() { this.constructor = d; }
__.prototype = b.prototype;
d.prototype = new __();
};
Mỗi chức năng có một thuộc tính prototype huyền diệu.
var __extends = this.__extends || function (d, b) {
Cheks nếu chức năng có sẵn trong bối cảnh đó, nếu không xác định một chức năng, mà sẽ đưa 2 đối số, Các đối tượng đó là được mở rộng và đối tượng mà từ đó nó được mở rộng ..
function __() { this.constructor = d; }
định nghĩa một hàm mới gọi là __
trong đó mà constructor tài sản của bối cảnh là ràng buộc để object d
__.prototype = b.prototype;
Thuộc tính prototype của Object __
được trỏ đến chuỗi b.prototype
..
d.prototype = new __();
Các tiếp cận các phương pháp Super View
xảy ra ở đây, nơi bạn đang thiết lập các thuộc tính prototype của Object ở đây ..
Vì vậy, khi dụ mới được tạo, nếu phương thức không khả dụng, thì vì đối tượng prototype
trên đối tượng, nó sẽ kiểm tra các phương thức trong Super view
vì nó có sẵn trên hàm __
được gắn với object d
Bản sao của [Loại bản ghi và Đóng cửa của Google] (http://stackoverflow.com/questions/13635901/typescript-and-google-closure), nhưng câu hỏi đó đủ tốt để giải thích nơi họ nhận được mã. Thảo luận thêm [ở đây] (http://stackoverflow.com/questions/5529285/prototype-chaining-constructor-inheritance). Bạn có thể đọc lên trên kế thừa prototypal javascript để tìm hiểu thêm. –