ext 中的只读变量如何实现的?

ext 中的只读变量如何实现的?
ext 中有写变量是只读的,只能在初始化的时候才能赋值,或者用方法才能赋值的,直接赋值是无效果的,这怎么实现?

有么?应该没有吧。。。
目前的JS无法做到只读属性,都可以随意修改的,你大可以试验一下……

如果你担心直接访问有潜在被修改风险,可以弄个getter,内部的属性用闭包藏起来,谁也访问不到。或加个下划线什么的约定它为私有变量,写入规范中不允许使用。

那些对Ext打补丁、作扩展的,也不用改Ext源码,直接可以在后面覆盖重写。

[code="js"]
var panel = new Ext.Panel({
title : "test",
html : "test",
buttons : [{text:"a"}]
});
console.log(panel.buttons);
panel.buttons = "test";
console.log(panel.buttons);

console.log(panel.collapsed);
panel.collapsed = "test";
console.log(panel.collapsed);
[/code]

firebug输出:
[quote]
[Object { initialConfig={...}, text="a", more...}]
test
false
test
[/quote]