2016-05-05 16 views
11

Tôi đang xem định nghĩa lớp ES6 và không hiểu các đối số cho hàm tạo. Đây là lớp học:Đối số hàm tạo lớp ES6

export class Modal { 
    constructor($modal, {size = null,} = {}) { 
     // stuff 
    } 
} 

Tôi đang bối rối bởi điều này {size = null,} = {}. Đó có phải là một đối số không? Nó có nghĩa là gì?

+2

bản sao có thể có của [Tôi có thể lấy thông tin về cú pháp tham số đối tượng cho hàm javascript ở đâu?] (Http://stackoverflow.com/q/10804982/1048572) và [trạng thái (trạng thái = {}) => trạng thái có nghĩa là] (http://stackoverflow.com/q/35526463/1048572) – Bergi

Trả lời

10

Đây là một object destructuring với giá trị mặc định đã cho.

Nếu bạn vượt qua một obj như

{ size: true } 

bạn có thể truy cập vào "kích thước" bên trong các nhà xây dựng giống như một bình thường biến

export class Modal { 
    constructor($modal, {size = null } = {}) { 
    console.log(size); // prints the size value from the given object 
    } 
} 

Nếu bạn không vượt qua bất cứ điều gì hoặc bạn vượt qua một đối tượng mà không có "kích thước", kích thước sẽ là null. Bạn có thể thực hiện nhiều bài tập như vậy. Chỉ cần tách riêng chúng bằng dấu phẩy.

Ví dụ:

constructor($modal, { size = null, foo, bar = "test" } = {}) 

Trong trường hợp này nếu bạn vượt qua một đối tượng mà không cần tài sản "foo" nó sẽ được undefined, phần còn lại đóng vai trò như tôi đã đề cập ở trên.

Cũng cần lưu ý rằng bạn phải thêm = {} vào cuối nhiệm vụ hủy trong tuyên bố constructor. Đó là trong trường hợp khi bạn không vượt qua bất cứ điều gì. Nếu không, bạn sẽ phải vượt qua một số đối tượng (có thể trống).

+0

Vâng, nó không thực sự là một nhiệm vụ trong trường hợp này ... – Bergi

+0

@bergi Nó phải là một đối tượng phá hoại, phải không? Đã sửa –

Các vấn đề liên quan