2015-12-13 16 views
5

tôi nhìn vào tài liệu cho Immutable.js, cụ thể như sau:Clone một đối tượng mới chỉ đơn giản bằng cách gán đối tượng cho một biến sử dụng Immutable.js

var map1 = Immutable.Map({a:1, b:2, c:3}); 
var clone = map1; 

nhưng tôi đang bối rối như thế nào đơn giản gán map1 để sao chép tạo một bản sao thay vì tham chiếu?

Cập nhật:. Tình trạng tài liệu "Nếu một đối tượng là bất biến, nó có thể được 'sao chép' chỉ đơn giản bằng cách làm cho một tham chiếu đến nó thay vì sao chép toàn bộ đối tượng Bởi vì một tham chiếu là nhỏ hơn nhiều so với các đối tượng chính nó, điều này dẫn đến tiết kiệm bộ nhớ và tăng tiềm năng tốc độ thực thi cho các chương trình dựa trên bản sao (chẳng hạn như hoàn tác ngăn xếp). "

Tôi chỉ thử nghiệm điều này trong một jsbin mặc dù, và bản sao không === map1. Tôi nghĩ rằng việc sử dụng từ 'bản sao' trong tài liệu là một chút gây hiểu lầm.

+0

Không phải 'map1' là bản sao của đối tượng bạn đã truyền vào? –

Trả lời

2

Immutable.Map là không thay đổi, khái niệm nhân bản là lỗi thời. Điểm của họ là bạn không phải bận tâm về nhân bản hay không, nó không quan trọng.

Tài liệu thực sự gây nhầm lẫn và thực sự đó là tham chiếu không phải là bản sao. Ảnh hưởng của nhân bản sẽ giống nhau.

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