Tôi đang cố gắng xác định hàm toJSON
không liệt kê trên đối tượng mẫu thử nghiệm mà không có nhiều may mắn. Tôi hy vọng một điều gì đó tương tự như ECMAScript 5 toJSON
:JS chức năng không thể đếm được
Object.defineProperty(obj, prop, { enumerable: false });
Tuy nhiên điều này định nghĩa nó là tài sản không thể truy cập như một phương thức.
Tôi đã hy vọng để có thể xác định các chức năng trong một thời trang không đếm được, như tôi đã lên kế hoạch để xác định trong nguyên mẫu của tất cả các loại nguyên thủy (String
, Number
, Boolean
, Array
, và Object
), vì vậy mà tôi có thể đệ quy áp dụng hàm thông qua các đối tượng phức tạp.
Mục tiêu cuối cùng ở đây là để có thể JSONify một mô hình/bộ sưu tập Backbone với các bộ sưu tập lồng nhau đệ quy.
Tôi đoán trong tổng Tôi có hai câu hỏi chính:
- Có thể định nghĩa một hàm phi đếm được trên một nguyên mẫu? Nếu thế thì sao?
- Có cách nào tốt hơn để JSONify các mô hình Backbone lồng nhau không?
Phương thức theo định nghĩa * là * thuộc tính của đối tượng. Bạn đang vẽ một sự phân biệt không tồn tại. Nếu bạn muốn nó không được liệt kê, thì rõ ràng bạn đang liệt kê các thuộc tính của một đối tượng. –
Có, tuy nhiên tôi muốn nó là một thuộc tính không thể đếm được, giống như cách mà Object.defineProperty không thể đếm được. tức là, không được lặp lại khi sử dụng 'for (x in obj) ' –
Right. Một lần nữa, một phương thức là thuộc tính của một đối tượng tham chiếu đến một hàm. Mã bạn có là những gì bạn muốn sử dụng để làm cho thuộc tính không thể đếm được. –