0

メソッドとプロパティを同じ名前にしようとしています:

値にアクセスするために使用されるプロパティとしてif (myObject.propMethod() == queryVal) : propMethod に割り当てるために使用されるメソッド:myObject.propMethod(newVal)

以下を定義しました。

        // the property: 
        myObject.propMethod = ko.observable();   // disregard the knockout 'ko' for this question  
        // the method: 
        myObject.prototype.propMethod = function (value) {
            myObject.propMethod = value;
            return target; // supports chaining
        };

経験が不足しており、javascript に触れていない: 機能しているように見えますが、説明していないことがあるかどうかを確認したいと思います。

編集:以下のコメントによると、私の割り当ては実際にノックアウトの機能を呼び出しているように見えるため、私の「プロトタイプ」は決して実行されません。割り当て時に追加のロジックを実行できる構造を取得するにはどうすればよいですか?

4

2 に答える 2

1

プロパティに値を代入するために、プロパティとメソッドを別々にする必要はありません。

直接割り当てるだけです。

        // the property: 
    myObject.propMethod = ko.observable(); 
    // the method: 
    myObject.propMethod = value;

この場合、Knockout はそれを観測可能にする必要があります (双方向バインディングの場合。値を変更するたびに更新します)。Knockout はそれを観測する方法として作成するため、プロパティ名の後に () を付けてノックアウトの観測可能なプロパティを読み取る必要があります。

于 2013-09-23T14:09:18.603 に答える