實例化時不能得到this
。你可以這樣做:
Type= {
Container: $get('ctl00_Main_rbtnlst_Type'),
Local: function(){return this.Container.getElementsByTagName('input');},
Foreign: function(){return this.Container.getElementsByTagName('input');}
}
,然後再使用Type.Local()/Type.Foreign()
上獲得當地或外國,或者如果您在實例中需要本地/國外使用此reduntant模式:
Type= {
Container: $get('ctl00_Main_rbtnlst_Type'),
Local: $get('ctl00_Main_rbtnlst_Type')
.getElementsByTagName('input');},
Foreign: $get('ctl00_Main_rbtnlst_Type')
.getElementsByTagName('input');}
}
或直接使用此執行功能:
var Type = (function(){
var container = $get('ctl00_Main_rbtnlst_Type'),
local = container.getElementsByTagName('input'),
foreign = container.getElementsByTagName('input');
return {
Container: container,
Local: local,
Foreign: foreign
}
})();
要完整,您還可以使用一些getters
,但不會在所有的瀏覽器(尤其不要在IE < 9)
var Type = {
Container: $get('ctl00_Main_rbtnlst_Type'),
get Local() {return this.Container.getElementsByTagName('input');},
get Foreign() {return this.Container.getElementsByTagName('input');}
}
注:Local
和Foreign
都是一樣的,就是要這麼做嗎?
@Kooilnc匿名函數是唯一的出路?我怎麼能用一個屬性 – Deeptechtons 2011-05-19 10:43:48
@Deeptechtons:見編輯 - >立即執行函數 – KooiInc 2011-05-19 10:48:38
@Kooilnc現在爲什麼我沒有想到關閉謝謝提醒標記爲答案btw'ctl00_Main_rbtnlst_Type'是一個表,並有2個單選按鈕在他們內部,因此本地和外國會指兩種不同的控制。謝謝 – Deeptechtons 2011-05-19 11:02:22