【週刊ドットインストール】 考える力を養うための新クラス『データで学ぶアルゴリズム』を256timesでリリース!
drawFace() { for (let angle = 0; angle < 360; angle += 6) { this.drawer.draw(angle, ctx => { ctx.moveTo(0, -this.r); if (angle % 30 === 0) { ctx.lineWidth = 2; ctx.lineTo(0, -this.r + 10); ctx.font = '13px Arial'; ctx.textAlign = 'center'; ctx.fillText(angle / 30 || 12, 0, -this.r + 25); } else { ctx.lineTo(0, -this.r + 5); } }); //...
上記記載部分のアロー関数をfunction(){}を使った通常関数に書き直して下記のようにすると、
this.drawer.draw(function(angle, ctx) { ...}
この下記部分の、
draw(angle, func) { this.ctx.save(); this.ctx.translate(this.width / 2, this.height / 2); this.ctx.rotate(Math.PI / 180 * angle); this.ctx.beginPath(); func(this.ctx); this.ctx.stroke(); this.ctx.restore(); }
下記該当箇所が関数ではないというエラーが表示されてしまいます。
func(this.ctx);
以前教わったように、this を関数外で定数に代入して呼び出してみたりなど、試行錯誤して試みてみましたがうまくいきません。
this
どのあたりを確認して修正したらいいでしょうか。 よろしくお願いします。
ドットインストールは、3分動画でマスターできるプログラミング学習サービスです。
3分で気軽に学習でき、スマートフォンからも視聴可能です。ホームページやWebサービスの制作を通して、実践的にプログラミングを学べます。
他にも、ゲーム制作やデータ分析・機械学習・AIに使われる言語まで幅広くカバー。学びたい分野のレッスンがきっと見つかります。
この回答を見るにはプレミアムプランへの登録が必要です
上記記載部分のアロー関数をfunction(){}を使った通常関数に書き直して下記のようにすると、
この下記部分の、
下記該当箇所が関数ではないというエラーが表示されてしまいます。
以前教わったように、
thisを関数外で定数に代入して呼び出してみたりなど、試行錯誤して試みてみましたがうまくいきません。どのあたりを確認して修正したらいいでしょうか。
よろしくお願いします。