クラス継承でエラーが発生する
エラーを解消したい
質問1
Chart.jsのChartクラスを継承し
サブクラスのインスタンス時にconsole.logが動作するか検証を行っていたのですが、
エラーが発生してしまいます。
何が原因でしょうか?
super()に関して知りたい
質問2
super()に関して
super()の中に引数がない場合エラーが発生してしまうと以前知りました。
Chartクラスにあるすべてのコンストラクタを継承したいと思っております。
その場合はsuperの引数に何を記載すればよいでしょうか?
発生している問題・エラー
Uncaught ReferenceError: Must call super constructor in derived class before accessing 'this' or returning from derived constructor
該当するソースコード
class edit extends Chart{
constructor(){
console.log('hello');
}
}
var ctx = document.getElementById('myChart');
var myChart = new edit(ctx, {
type: "bar",
data:{
labels:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],
datasets:[
{
label:'line1',
type:'line',
data:[1,1,1,2,4,4,3],
backgroundColor: "red",
borderColor : "rgba(254,97,132,0.8)",
fill: 'false',
yAxisID: 'y-axis-2',
},
{
label:'line2',
type:'line',
data:[2,3,4,5,6,7,8],
backgroundColor: "blue",
borderColor : "rgba(254,97,132,0.8)",
fill: false,
yAxisID: 'y-axis-2',
},
{
label:'line3',
type:'line',
data:[5,5,5,5,5,5,5,5,5,5,5,5],
backgroundColor: "red",
borderColor : "red",
fill: false,
yAxisID: 'y-axis-2',
},
{
label:'数値A',
type:'bar',
data:[0,0,1,1,1,1,1,3,2,1,],
backgroundColor: "#00ff7f",
yAxisID: 'y-axis-sales',
},
{
label:'数値B',
type:'bar',
data:[3,3,3,3,3,3,3],
backgroundColor: "#008000",
yAxisID: 'y-axis-sales'
},
{
label:'数値C',
type:'bar',
data:[3,3,3,3,3,3,3],
backgroundColor: "skyblue",
yAxisID: 'y-axis-sales'
},
]
},
options:{
title: { //タイトル設定
display: true, //表示設定
fontSize: 18, //フォントサイズ
text: '月別の数値' //ラベル//
},
legend: {
display: true,
position: 'left',
label:'test',
},
scales:{
xAxes:[{stacked:true,}],
yAxes:[{
id: 'y-axis-sales',//積み上げるY軸
stacked: true,
type: 'linear',
display: true,
position: 'left',
ticks: {
beginAtZero: true,
min: 0,
max: 10,
stepSize: 2,
},
},{
id: 'y-axis-2',//積み上げないY軸
stacked: true,
type: 'linear',
display: true,//隠します
position: 'right',
ticks: {
beginAtZero: true,
min: 0,
max: 20,
stepSize: 5,
},
}]
},
}
});
0