我想让一个对象的结构不可变,以防止其属性随后被替换。但是,这些属性需要是可读的。这可能吗?我确定没有语言特性(如Java中的final和C#中的readonly行)来支持这一点,但想知道是否可能有另一种机制为了达到同样的结果?我正在寻找类似的东西:varo={a:"a",f:function(){return"b";}};varp=o.a;//OKo.a="b";//Errorvarq=o.f();//OKo.f=function(){//Errorreturn"c";}; 最佳答案 ECMAScript5将有seal()和free