如何將常量設置爲變量本身的屬性?如何使用const關鍵字創建Javascript常量作爲對象的屬性?
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
以及如何通過引用傳遞的常量突然變得可變? 編輯:我知道應用程序不會(或者不應該)是可變的;這只是一個觀察...
(function() {
const App;
// bunch of code
window.com_namespace = App;
}());
window.com_namespace; // App
window.com_namespace = 'something else';
window.com_namespace; // 'something else'
怎麼能一個很好的組織,可擴展的,面向對象,單獨的命名空間包含常數庫,這些限制進行?
編輯:我相信zi42,但我必須要問why
是不是通過引用傳遞的對象? – danronmoon
是的,但'const obj = {}'有點兒沒用,因爲引用是常量,但你仍然可以修改對象。 –
編號對象不是*「通過引用傳遞」(這是一個模棱兩可的短語)。一個實現通常會「傳遞參考的*值*」,但重要的是JavaScript有[Call By Object Sharing semantics](http://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_sharing)。有趣的事實:* ECMAScript規範不使用術語「參考」*。 – 2012-06-01 02:20:21