可能性の重複:
detect variable change in javascriptJS/jQueryの変数schangeイベント
がどのように私は私の変数が変更されたことが判明することができますか?
私の変数が例えば== 1であるたびに実行されるイベントがあります。私の変数が変更されたときにのみ動作するようにしたいのです。
可能性の重複:
detect variable change in javascriptJS/jQueryの変数schangeイベント
がどのように私は私の変数が変更されたことが判明することができますか?
私の変数が例えば== 1であるたびに実行されるイベントがあります。私の変数が変更されたときにのみ動作するようにしたいのです。
プロパティセッター(これは新しく標準化された言語の一部です(the ECMAScript5 specificationから新規)を使用して行うことができます。これは、オブジェクト上のセッターで定義されたプロパティに対してのみ機能し、古い変数やプロパティでは機能しません。ここで
はgetterとsetterの両方でfoo
プロパティを持つオブジェクトの例です:
var obj = {};
Object.defineProperty(obj, "foo", (function(){
var value = 42;
function fooGet() {
display("Getting: " + value);
return value;
}
function fooSet(newValue) {
display("Setting: " + newValue);
value = newValue;
}
return {
get: fooGet,
set: fooSet
};
})());
Live exampleが、唯一の私はでちょうどGoogle Chromeのだと思うECMAScript5プロパティをサポートするブラウザ上で動作します瞬間
もちろん、プロパティではなくゲッターとセッター関数を直接使用してください。 :-)
単純:プリミティブ変数を使用せず、値を変更するための「セッター」メソッドを持つオブジェクトを使用します。セッターでは、追加のコードを呼び出すことができます。
setInterval
メソッドを使用すると、定期的に変数の値をチェックして、必要な場合は自分のものを実行できます。
しかし、それは良い解決策ではありません。他の提案が良いです。
http://www.elated.com/articles/javascript-timers-with-settimeout-and-setinterval/
EDIT:
var myVar = 0;
var intervalId = setInterval('checkVariable(myVar);', 3000);
function checkVariable(theVar) {
if (theVar == 1) {
alert('Variable is 1.');
}
}
checkVariable(myVar)
3秒ごとに実行されます。
例を表示できますか? – TRAVA
@ T.J。私は@Aaronはこのような何かを行うオブジェクトを示唆していると思う:Newランキング
var myVar = new Watched(1, function (newValue) { alert(newValue) });
myVar.add(2); // alert(3);
myVar.add(10); // alert(13)
は、彼らが更新されていると言って、コールバックを発射方法によって更新された内部値を保持します。
EDITED:多分
OKではない@Aaronが:)
を考えていた私は心の中でこのような非常にシンプルなものを持っていた:
function Watched (initVal, cb) {
var value = initVal;
function add (val) {
value += val;
cb(value);
}
// return public methods
return { add: add };
}
Uは一例を示しすることはできますか? – TRAVA
http:// stackoverflowを参照してください。com/questions/1759987/detect-variable-change-in-javascript for code。 –