Hướng dẫn call super function javascript - gọi siêu hàm javascript
Từ khóa siêu được sử dụng để truy cập các thuộc tính trên một đối tượng theo nghĩa đen hoặc [[nguyên mẫu]] của lớp hoặc gọi hàm tạo của siêu lớp.super keyword is used to access properties on an object literal or class's [[Prototype]], or invoke a superclass's constructor. Các biểu thức Cú pháp
Sự mô tảTừ khóa 7 có thể được sử dụng theo hai cách: như một "cuộc gọi chức năng" ( 6) hoặc như một "tra cứu thuộc tính" ( 4 và 5).Lưu ý: 7 is a keyword and these are special syntactic constructs. 7 is not a variable that points to the prototype object. Attempting to read 7 itself is a 4.
Trong thân hàm xây dựng của một lớp dẫn xuất (với 5), từ khóa 7 có thể xuất hiện dưới dạng "gọi chức năng" ( 6), phải được gọi trước từ khóa 8 được sử dụng và trước khi trở lại của hàm tạo. Nó gọi hàm tạo của lớp cha và liên kết các trường công khai của lớp cha, sau đó hàm tạo của lớp dẫn xuất có thể truy cập và sửa đổi 8.Mẫu "Tra cứu thuộc tính" có thể được sử dụng để truy cập các phương thức và thuộc tính của một đối tượng theo nghĩa đen hoặc lớp [[nguyên mẫu]]. Trong cơ thể của một lớp, tham chiếu của 7 có thể là chính hàm tạo của siêu lớp hoặc 1 của nhà xây dựng, tùy thuộc vào bối cảnh thực thi là tạo thể hiện hay khởi tạo lớp. Xem phần ví dụ để biết thêm chi tiết.Lưu ý rằng tham chiếu của 7 được xác định bởi lớp hoặc đối tượng theo nghĩa đen 7 được khai báo, không phải đối tượng mà phương thức được gọi. Do đó, không liên kết hoặc gắn lại một phương thức không thay đổi tham chiếu của 7 trong đó (mặc dù chúng thay đổi tham chiếu của 8). Bạn có thể thấy 7 là một biến trong phạm vi theo nghĩa đen của lớp hoặc đối tượng, mà các phương thức tạo ra đóng cửa. (Nhưng cũng cẩn thận rằng nó không thực sự không phải là một biến, như đã giải thích ở trên.)Khi cài đặt thuộc tính thông qua 7, thuộc tính được đặt trên 8 thay thế.Ví dụSử dụng siêu trong các lớp họcĐoạn mã này được lấy từ mẫu lớp (bản demo trực tiếp). Ở đây 9 được gọi để tránh sao chép các bộ phận xây dựng 'phổ biến giữa 0 và 1.
Phương pháp tĩnh siêuBạn cũng có thể gọi Super trên các phương thức tĩnh.
Truy cập Super in Class Field Tuyên bố 7 cũng có thể được truy cập trong quá trình khởi tạo trường lớp. Tham chiếu của 7 phụ thuộc vào trường hiện tại là trường thể hiện hay trường tĩnh.
Lưu ý rằng các trường thể hiện được đặt trên thể hiện thay vì 1 của Constructor, do đó bạn không thể sử dụng 7 để truy cập trường thể hiện của siêu lớp.
Ở đây, 6 là 7 thay vì 10, vì 8 được định nghĩa là một thuộc tính riêng của ví dụ 9, thay vì 0. 7, trong bối cảnh này, chỉ tìm kiếm các thuộc tính trên 0, bởi vì đó là [[nguyên mẫu]] của 3.Xóa siêu thuộc tính sẽ ném lỗiBạn không thể sử dụng toán tử xóa và 4 hoặc 5 để xóa thuộc tính của lớp cha, nó sẽ ném 6.
Sử dụng Super.Prop trong các chữ cái đối tượngSuper cũng có thể được sử dụng trong bộ khởi tạo đối tượng / ký hiệu nghĩa đen. Trong ví dụ này, hai đối tượng xác định một phương thức. Trong đối tượng thứ hai, 7 gọi phương thức của đối tượng đầu tiên. Điều này hoạt động với sự trợ giúp của 8 mà chúng tôi có thể đặt nguyên mẫu của 9 thành 0, do đó 7 có thể tìm thấy 2 trên 0.
Các phương thức đọc Super.Prop không hoạt động khác khi bị ràng buộc với các đối tượng khácTruy cập 4 hoạt động như 5, có nghĩa là tài sản luôn được tìm kiếm trên nguyên mẫu của đối tượng/lớp học, và không liên kết và gắn lại một phương thức sẽ không thay đổi tham chiếu của 7.
Điều tương tự xảy ra trong các chữ cái.
Chỉ đặt lại toàn bộ chuỗi kế thừa sẽ thay đổi tham chiếu của 7. 0Thay vào đó, cài đặt Super.Prop sẽ đặt thuộc tính nàyĐặt thuộc tính của 7, chẳng hạn như 9, hoạt động như 0. Đây là một trong những trường hợp mà sự hiểu biết 7 chỉ đơn giản là "tham chiếu của đối tượng nguyên mẫu" bị ngắn, bởi vì nó thực sự đặt thuộc tính trên 8 thay thế. 1 9 sẽ tìm kiếm bộ mô tả thuộc tính của 4 trên 5 (và gọi các setters được xác định ở đó), nhưng giá trị 8 sẽ được đặt thành 8, đó là 8 trong bối cảnh này. Bạn có thể đọc 9 để biết thêm chi tiết về vụ án khi 0 và 1 khác nhau.Điều này có nghĩa là trong khi các phương pháp nhận được 4 thường không dễ bị thay đổi trong bối cảnh 8, những phương pháp đặt ra 4 là. 2Tuy nhiên, 9 vẫn tư vấn cho bộ mô tả thuộc tính của đối tượng nguyên mẫu, điều đó có nghĩa là bạn không thể viết lại các thuộc tính không thuận lợi và các setters sẽ được gọi. 3Thông số kỹ thuật
Tính tương thích của trình duyệt webBảng BCD chỉ tải trong trình duyệt Xem thêm |