Làm cách nào các hằng số không thể được đặt làm thuộc tính của các đối tượng là các biến?Cách tạo hằng số Javascript làm thuộc tính của đối tượng bằng cách sử dụng từ khóa const?
const a = 'constant' // all is well
// set constant property of variable object
const window.b = 'constant' // throws Exception
// OR
var App = {}; // want to be able to extend
const App.goldenRatio= 1.6180339887 // throws Exception
Và cách hằng số được chuyển qua tham chiếu đột nhiên trở thành biến? EDIT: Tôi biết Ứng dụng sẽ không (hoặc đúng hơn ... KHÔNG NÊN) có thể thay đổi; đây chỉ là một quan sát ...
(function() {
const App;
// bunch of code
window.com_namespace = App;
}());
window.com_namespace; // App
window.com_namespace = 'something else';
window.com_namespace; // 'something else'
Làm thế nào một thư viện có tên, có thể mở rộng, hướng đối tượng, đơn lẻ có chứa hằng số được thực hiện với những giới hạn này?
EDIT: Tôi tin zi42, nhưng tôi chỉ phải hỏi why
Đối tượng không được truyền bằng tham chiếu? – danronmoon
Có, nhưng 'const obj = {}' là kinda vô ích vì tham chiếu sẽ không đổi, nhưng bạn vẫn có thể sửa đổi đối tượng. –
Không. Đối tượng là * không * "được chuyển bởi tham chiếu" (đây là cụm từ mơ hồ nhất). Một thực hiện thường sẽ "vượt qua * giá trị * của tài liệu tham khảo" nhưng điều quan trọng là JavaScript có [Gọi theo ngữ nghĩa chia sẻ đối tượng] (http://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_sharing). Thực tế thú vị: * đặc tả ECMAScript không sử dụng thuật ngữ "tham chiếu" *. –