1

私の Javascript ドラッグ アンド ドロップ ビルド アプリでは、さまざまな建物を建設できます。これらの特定の特性はすべて、次のように 1 つのオブジェクトに保存されます。

var buildings = {
house: ['#07DA21',12,12,0,20],
bank: ['#E7DFF2',16,16,0,3],
stadium: ['#000000',12,12,0,1],
townhall: ['#2082A8',20,8,0,1],
etcetera
}

したがって、すべての建物には、色、サイズ、建物[タウンホール][0] (色を参照) と呼ばれる外観など、多くの特徴があります。ユーザーが何かを変更すると、オブジェクトが変更されます。ただし、「リセット」をクリックすると、最初からやり直すためにオブジェクト全体を初期設定にリセットする必要がありますが、その方法がわかりません。通常のオブジェクトの場合は、次のようなものです。

function building() {}
var building = new building();
delete building;
var building2 = new building();

簡単に削除して再作成できるため、プロパティはリセットされます。しかし、私のオブジェクトは自動的に初期化されます。非常に複雑にすることなく、オブジェクトを削除して新しく作成できるものにする方法、またはこの情報を保存するより良い方法はありますか?

4

2 に答える 2

3

オブジェクトのプロトタイプとして初期状態を保持できます。

var Base = function(){};
    Base.prototype={a:1,b:2};
var c = new Base();

これで、 a または b の値を好きなように変更できます。復元するには、使用するだけです

delete c.a or delete c.b

初期値が戻ってきます。この助けを願っています。

于 2010-06-06T17:54:09.837 に答える
1

コピー/クローン方式を使用して元の状態に復元するだけです

var defaults = {
    foo: "bar"
};
var building;

function reset(){
    building = {};
    for (var key in defaults) {
        if (defaults.hasOwnProperty(key){
            building[key] = defaults[key];
        }
    }
}

reset()これで、リセットが必要なときにいつでも電話をかけることができますbuilding

于 2010-06-06T17:58:33.917 に答える