JavaScriptでのクラスの作り方
JavaScriptのクラスについて
クライアントサイドで動くWebアプリを作成しようとしており、
JavaScriptのクラスおよびインスタンスの動的な生成について不明な点がございます。
クラスを作成し、
コンストラクタの中にパラメータなどを書き、
コンストラクタの外に
▼パラメータへの初期値の代入(イニシャライズ)
▼処理を開始
▼処理を停止
上記の関数を書こうとしています。
html
1<script> 2 3class MyClass{ 4 constructor( a, b, c ){ 5 }; 6 7 init () { 8 this.a = 1; 9 this.b = 2; 10 this.c = 3; 11 }; 12 13 start () { 14 let start1 = 0; 15 this.start1 = this.a + this.b; 16 }; 17 18 stop () { 19 let stop1 = 0; 20 this.stop1 = this.c - this.b; 21 }; 22 23}; 24 25const myclass = new MyClass( 2, 3, 4 ); 26// let myclass.start1a = myclass.start (); 27 console.log('myclass.start1a is ' + myclass.start1a); 28// let myclass.stop1a = myclass.stop (); 29 console.log('myclass.stop1a is ' + myclass.stop1a); 30 31</script>
私の思惑では、
myclass.start1a is 5
myclass.stop1a is 1
という結果を得たかったのですが、
myclass.start1a is undefined
myclass.stop1a is undefined
となってしまいました。
そこで、上記ではコメントアウトしてあるletを追加すると、
Uncaught SyntaxError: redeclaration of const myclass
のエラーが出て「関数の引数名としてある変数名が発生した後、関数本体内の let 代入文を使用して同じ変数名を再度宣言すると発生する」とのこと。ほかにも別のエラーに対応しようと試すと次は別のエラーが出るのループにハマってしまい、こちらで質問させていただくことにしました。
解決方法をご存知の方いらっしゃいましたら、よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー