質問: 0; this.services.forEach(function(s) { if (s.active) { total += s.price; } }); return total; } ``` 1なぜただ表示する部分を関数にできるのか? @click, @changeなどだといつmethodが実行されるか分かるが、この場合いつ??(computedの役割なのかなぁ~っとうっすら思っておりますが) 2JS側の`this.services.forEach(function(s)`はmethodに引数が渡されていないが、どうやってsを受けとっているのか?? よろしくお願いいたします。
回答: total()は、codepenの内容を見る限り **computed** ではなく **methods** で定義されていますが、 この関数がいつ呼ばれるかというと、再描画が行われたときとなります。 一方 **computed** で定義された関数は dataプロパティの変数に対して何らかの処理を加えて表示させるものです。この時依存する dataプロパティの値が変化したときに呼ばれることになります。 this.services.forEach(function(s) ですが、this.servicesは配列になっています。 この配列を forEachすることで全件繰り返しを行うのですが、その時に s には先頭から1件ずつ渡していくということを行います。