2017-08-30 29 views

Trả lời

3

Vấn đề là, gọi điện thoại cho getter có thể có tác dụng phụ, ví dụ:

class Dog { 
    get paws() { 
    console.log('paws!'); //side effect 
    this.paws++; // side effect 
    if(this.paws > 4) { 
    throw Error('oh no'); // side effect 
    } 

    return this.paws; 
    } 
} 

Mỗi getter có thể thay đổi trạng thái của ứng dụng hoặc phá vỡ nó trong khi bạn đang cố gắng để gỡ lỗi nó. Đó là lý do DevTools yêu cầu bạn gọi những getters này theo cách thủ công. Ngay cả khi getter của bạn trả về một giá trị tĩnh, DevTools không có cách nào để biết điều đó.

Nếu bạn thực sự muốn gọi tất cả các getter và có một cái nhìn tổng quan nhanh chóng của các giá trị, bạn có thể tạo cho mình một helper:

class Dog { 
get _debug() { 
    return { 
    paws: this.paws, 
    //... 
    }; 
} 
} 

này sẽ thêm một getter mới mà sẽ gọi tất cả các thu khí khác cho bạn và cung cấp cho bạn các giá trị của chúng chỉ bằng một cú nhấp chuột (thay vì n lần nhấp).

+0

Tôi không thể thêm một getter để các đối tượng này mặc dù. Chúng không phải là các lớp/đối tượng mà tôi đã tự tạo ra. – ddschmitz

0

Bạn có thể thử đặt nó thông qua JSON stringify đó sẽ gọi tất cả các thu khí:

console.log(JSON.parse(JSON.stringify(myObj)));

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