Có thể sử dụng phép gán destructuring trong một hàm tạo của lớp JavaScript để gán các biến cá thể tương tự như cách bạn có thể thực hiện nó cho các biến bình thường không?Có thể hủy cấu trúc các biến cá thể/thành viên trong một hàm tạo JavaScript không?
Ví dụ sau hoạt động:
var options = {one: 1, two: 2};
var {one, two} = options;
console.log(one) //=> 1
console.log(two) //=> 2
Nhưng tôi không thể có được một cái gì đó như sau để làm việc:
class Foo {
constructor(options) {
{this.one, this.two} = options;
// This doesn't parse correctly and wrapping in parentheses doesn't help
}
}
var foo = new Foo({one: 1, two: 2});
console.log(foo.one) //=> I want this to output 1
console.log(foo.two) //=> I want this to output 2
Tôi nghĩ rằng nhiều câu hỏi chung là liệu có một biểu mẫu chuyển nhượng phá hủy cung cấp cho việc tạo các thuộc tính trên một đối tượng hiện có thay vì một bộ khởi tạo đối tượng hay không. – Pointy
Dù sao luôn có 'Object.assign (điều này, tùy chọn);' – Pointy
Điều đáng nói đến là bạn có thể áp dụng cùng một cú pháp bên ngoài các hàm tạo. Cho trước là hai đối tượng: 'let o = {a: 1, b: 2}, p = {};'. Deconstruct 'o' thành một ít phức tạp hơn' p' là một sự hòa bình của bánh: '({b: p.b} = o);' yields 'Object {b: 2}' cho 'p'. – ftor