8)JavaScriptがブラウザで無効になっています。ObservableObservableValueは、値をラップし、値の変更を監視できるエンティティです。通常、このインタフェースは直接実装されませんが、サブインタフェースのいずれか(ObservableBooleanValueなど)が実装されます。getValue()を使用して、ObservableValueの値をリクエストできます。ObservableValueの実装は、遅延評価をサポートする場合があります。変更後に値がすぐに再計算されず、遅れて次に値をリクエストするときに再計算されます。このライブラリのすべてのバインディングおよびプロパティは、遅延評価をサポートします。変更イベントと無効化イベント。変更イベントは、値が変更されたことを示します。現在の値が有効でなくなった場合、無効化イベントが生成されます。ObservableValueが遅延評価をサポートする場合、値が遅延して評価されるので再計算されるまで無効な値が実際に変更されたかどうかわからないため、この区別は重要になります。このため、無効化イベントを即時実装および遅延実装に生成できますが、変更イベントの生成は即時評価が必要になります。このクラスの実装は、イベント・ハンドラでの時間の大量消費を回避するためにできるだけ少ないイベントを生成する必要があります。このライブラリの実装は、最初の無効化イベントの発生時に無効とマークされます。値が再計算されて再度有効になるまで、追加の無効化イベントを生成しません。無効化イベントをリスニングするInvalidationListenerと変更イベントをリスニングするChangeListener。ObservableValueの実装が遅延評価をサポートしていても、ChangeListenerのアタッチでは、即時計算を適用します。listener)ObservableValueの値が変更されるたびに通知されるChangeListenerを追加します。listener)ObservableValueの値が変更されるたびに通知されるリスナーのリストから指定されたリスナーを削除します。listener)ObservableValueの値が変更されるたびに通知されるChangeListenerを追加します。同じリスナーが複数回追加される場合、複数回通知されます。一意性を確認するためにチェックが実行されません。実際の同じChangeListenerインスタンスが異なるObservableValuesに対して安全に登録される場合があるので注意してください。ObservableValueは、リスナーの強参照を格納するため、リスナーはガベージ・コレクションされず、メモリー・リークが発生する可能性があります。使用後にremoveListenerを呼び出してリスナーを登録解除するか、WeakChangeListenerのインスタンスを使用してこの状況を回避することをお薦めします。listener)ObservableValueの値が変更されるたびに通知されるリスナーのリストから指定されたリスナーを削除します。指定されたリスナーが以前に登録されていない場合(つまり、一度も追加されていなかった場合)、このメソッドの呼出しはno-opです。以前に追加されたことがある場合は削除されます。複数回追加された場合、最初の発生のみ削除されます。