0

オブジェクト指向の JavaScript は初めてです。オブジェクト コンストラクターを作成しようとしています。これが私のコードです

function Collection() {
    this.ports = build_ports_collection();
    this.all_things = build_things_collection();
    this.added_things = function() {
        this.added_things.total_added = 0;

        var temp = this.all_things;
        temp.splice($(sth).val(), 1);
        this.added_things.all = temp;
    };
};
Collection.ports.prototype.reload = function() {
    Collection.ports = build_ports_collection();
};
Collection.all_things.prototype.reload = function() {
    Collection.all_things = build_things_collection();
};
Collection.added_things.all.prototype.reload() = function() {
    var temp = Collection.all_things;
    temp.splice($(sth).val(), 1);
    Collection.added_things.all = temp;
};
Collection.added_things.prototype.add_things = function() {
    this.added_things.total_added++;
    add_things();
};
Collection.added_things.prototype.remove_things = function() {
    this.added_things.total_added--;
    remove_things();
};

Collection.added_things.all.prototype.reload()=.... という行でエラーが発生します。

netbeans レポート: 割り当ての左側が無効です。

ここで私の意図は、コレクションのすべてのインスタンス間で共有されるように、メソッド reload() を Collection.added_things.all にバインドすることでした

どの点が欠けていますか?

4

1 に答える 1

0

これがあなたが探している答えかどうかはわかりませんが、これが頭に浮かびました。

Collection.added_things.all.prototype.reload() = function() {
    var temp = Collection.all_things;
    temp.splice($(sth).val(), 1);
    Collection.added_things.all = temp;
};

そこで、 のプロトタイプに何かを割り当てていますがCollection.added_things.all

this.added_things = function() {
    this.added_things.total_added = 0;

    var temp = this.all_things;
    temp.splice($(sth).val(), 1);
    this.added_things.all = temp;
};

.allonを宣言するのは最初です - 基本的に、が最初に呼び出されるCollection.added_thingsまで存在しないプロパティ/変数/ポインターに値を代入しようとしています。added_things

于 2013-06-26T07:38:55.783 に答える