私は小さなプロジェクトに取り組んでおり、プロジェクトのオブジェクトの 1 つに、オブジェクトのプロパティである配列に追加される更新関数を含めることができます。
例、
/*
Add an update function to the layer
@param function {update} The update to add
*/
Layer.prototype.addUpdate = function (update) {
// Add the update
this.updates.push(update);
};
/*
Remove an update from the layer
@param function {update} The update to remove
*/
Layer.prototype.removeUpdate = function (update) {
this.updates.forEach(function (element, index) {
if (element.toString() === update.toString()) {
this.updates.splice(index, 1);
}
}, this);
};
上記のコードを使用すると、次のように使用できます。
var layer = new Layer();
var func = function () {
x = 10;
};
layer.addUpdate(func);
layer.removeUpdate(func);
関数の等価性を比較するためにこのようにすることについてインターネットで読んだ後、私が読んだどこでもそうするのは本当に悪いと言っています。
関数での使用はtoString()
本当に悪いですか?
更新を追加および削除するときに両方のパラメーターの関数のみを提供しながら、これを行うことができる他の方法はありますか?
UDPATE
2 つの変数が同じ参照を指しているかどうかを確認する方法はありますか? 例 (疑似);
var a = 10;
var b = a;
var c = a;
if (b and c point to a) //