Cho một đối tượng obj
, tôi muốn xác định thuộc tính chỉ đọc 'prop'
và đặt giá trị của nó là val
. Đây có phải là cách thích hợp để làm điều đó không?Xác định thuộc tính chỉ đọc trong JavaScript
Object.defineProperty(obj, 'prop', {
get: function() {
return val;
}
});
Kết quả sẽ được (cho val = 'test'
):
obj.prop; // 'test'
obj.prop = 'changed';
obj.prop; // still 'test' since it's read-only
Phương pháp này hoạt btw: http://jsfiddle.net/GHMjN/
Tôi chỉ không chắc chắn nếu điều này là/mượt/cách mà hầu hết thích đơn giản nhất để làm điều đó ...
Có thể trùng lặp: http://stackoverflow.com/questions/366047/can-read-only-properties-be-implemented-in-pure-javascript (Nếu bạn không muốn hỗ trợ các trình duyệt cũ hơn, phương pháp của bạn là tốt nhất) –