# ObservableObj Class
1. 性質:靜態類/單例類/實例類
2. 開發目的:帶有監聽器的 Obj,類似 JavaFX 中的 ObservableValue。
## 方法 Method
### get()
獲取Object
#### 返回 Returns:
Obj嗯
### set(aObj)
設置Object
#### 參數 Parameters:
- 需要設置的 `Object`
#### 返回 Returns:
Obj
### addListener(aMethod)
#### 參數 Parameters:
- 添加監聽器
監聽器的 `aChange` 參數是`observableObj, oldChange, newChange`
#### 返回 Returns:
null
## 示例 Example
```autohotkey
theObservableObj := new ObservableObj("FirstString")
theObj := theObservableObj.get()
LogPrintln(theObj,A_LineFile "(" A_LineNumber ")" " : " "theObj >>> `r`n")
theObservableObj.addListener(new Function("callback"))
theObservableObj.addListener(new Function("callback"))
theObservableObj.set("SecondString")
callback(observableObj, oldChange, newChange){
LogPrintln(observableObj,A_LineFile "(" A_LineNumber ")" " : " "observableObj >>> `r`n")
LogPrintln(oldChange,A_LineFile "(" A_LineNumber ")" " : " "oldChange >>> `r`n")
LogPrintln(newChange,A_LineFile "(" A_LineNumber ")" " : " "newChange >>> `r`n")
return
}
```
```AutoHotKey
D:\AHKs\Dev\TPDD_ObservableObj.ahk(27) : theObj >>>
FirstString
D:\AHKs\Dev\TPDD_ObservableObj.ahk(33) : observableObj >>>
{__Instance:ObservableObj,listenerList:[{__Instance:Function,bindParas:{*Obj*},func:callback()},{__Instance:Function,bindParas:{*Obj*},func:callback()}],Obj:FirstString}
D:\AHKs\Dev\TPDD_ObservableObj.ahk(34) : oldChange >>>
FirstString
D:\AHKs\Dev\TPDD_ObservableObj.ahk(35) : newChange >>>
SecondString
D:\AHKs\Dev\TPDD_ObservableObj.ahk(33) : observableObj >>>
{__Instance:ObservableObj,listenerList:[{__Instance:Function,bindParas:{*Obj*},func:callback()},{__Instance:Function,bindParas:{*Obj*},func:callback()}],Obj:FirstString}
D:\AHKs\Dev\TPDD_ObservableObj.ahk(34) : oldChange >>>
FirstString
D:\AHKs\Dev\TPDD_ObservableObj.ahk(35) : newChange >>>
SecondString
```
- 指南 (README)
- 常見問題 (FAQ)
- 更新歷史(CHANGELOG)
- 貢獻指南 (CONTRIBUTING)
- 開源協議 (LICENCE)
- 鳴謝 (ACKNOWLEDGEMENT)
- 文檔模板 (TEMPLATE)
- 新手指南(BEGINNER_GUIDE)
- 語法高亮(HIGHLIGHTING)
- Class
- _Container
- _EX
- _List
- _Map
- _Win
- _Wins
- BeanEnum
- HotString
- HotStringMaps
- InvisibleCharacter
- JSON
- JsonFile
- Method
- ObservableMap
- ObservableObj
- WinEvent
- Timer
- MesToast
- APPLocker
- AutoClassify
- Everything
- Function
- Ini
- AutoInputBox
- ParaChecker
- PathObj
- RunningSpeedTest
- Script
- Switcher
- Stack
- TimeChecker
- Type
- UMSS
- Function
- assert()
- Analyze()
- AnalyzeClassName()
- AutoBind()
- bulkMoveFile()
- ExcelToList()
- getClass()
- getCurrentTime()
- getFunc()
- Instanof()
- InstanceCheck()
- loadMethod()
- LogPrintln()
- rawCall()
- RandomStr()
- showObj()
- Type()
- throwWithSt()
- UseCMD()
- ObjDump()
- Test
- ObjLoad()
- StringMethod
- TypeClass
- MapFactory()