1

このオブジェクトが使用されなくなったときに、オブジェクトを内部から削除する方法を知りたいです。

例えば ​​:

var MyObject = function () {
    return {
        'some': function() {...},
        'actions': function() {...},
        'destroy': function() {
            this = null; // throws a "ReferenceError: Invalid left-hand side in assignment"
        },
    }
}

// Doing so, I would be able to :
var obj = new MyObject();
obj.some();

// And when I have finished :
obj.destroy();

その背後にある理由は、私がそれを外部から破棄できないためです (オブジェクトは DOM 要素の「クリック」で作成されますが、他の場所をクリックすると破棄されるため、作成の範囲 (「onClick 内」) " メソッド) を削除したい場所では使用できません。

どうやってやるの?

4

1 に答える 1

1

JavaScript は単純にそのようには機能しません。実際、オブジェクトを破壊することはできません。できる唯一のことは、JS ランタイムによるガベージ コレクションの対象となるオブジェクトへの参照がないことを確認することです。より完全なスニペットを投稿すると、メモリ リークがあるかどうかがわかりますが、対応する.offfor every.onを実行し、参照変数を に設定した場合null、それが JavaScript でできることとすべきことの全範囲です。 .

于 2013-04-05T06:07:30.337 に答える