1

コンストラクターと連携してメソッドチェーンを機能させようとしていますが、その方法が正確にはわかりません。これまでの私のコードは次のとおりです。

function Points(one, two, three) {
this.one = one;
this.two = two;
this.three = three;
}

Points.prototype = {

add: function() {
    return this.result = this.one + this.two + this.three;
},
multiply: function() {
    return this.result * 30;
}

}

var some = new Points(1, 1, 1);
console.log(some.add().multiply());

add メソッドの戻り値に対して、multiply メソッドを呼び出そうとしています。私がしていないことは明らかですが、それが何であるかはわかりません。

何かご意見は?

4

1 に答える 1

13

式の結果を返すべきではありません。代わりにこれを返します。

Points.prototype = {

    add: function() {
        this.result = this.one + this.two + this.three;
        return this;
    },
    multiply: function() {
        this.result = this.result * 30;
        return this;
    }

}

そして、次のように使用します。console.log(some.add().multiply().result);

于 2012-11-18T04:53:49.640 に答える