質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

569閲覧

静的プロパティについて

bag_ai

総合スコア24

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/11/29 06:34

JavaScriptの静的プロパティを学んでいるのですが、
いまいち使いどころが分かりません。

クラス文の中でletやconstで変数宣言をするとエラーが出ますので、
「クラス文の中で変数を使いたい時に静的プロパティを使用する。」と考えたのですが間違っているでしょうか?

js

1class Test { 2 constructor() {} 3 4 static name = "太郎"; 5 6 // constで宣言するとエラーが出る 7 // const name2 = '次郎'; 8 9 hello() { 10 console.log("hello" + this.constructor.name); 11 } 12} 13 14const insta = new Test(); 15 16insta.hello();

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

jsのクラスで定数を設定するならセッタなしのゲッタで値を返してください。

javascript

1class Test { 2 constructor() {} 3 static name = "太郎"; 4 get name2(){return '次郎'}; 5 hello() { 6 console.log("hello" + this.constructor.name); 7 console.log(this.name2); 8 } 9} 10const insta = new Test(); 11insta.hello();

投稿2021/11/29 06:50

編集2021/11/29 06:50
yambejp

総合スコア116724

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

クラス - JavaScript | MDN

静的メソッドとプロパティ

static キーワードは、クラスの静的メソッドまたはプロパティを定義します。静的メンバー (プロパティとメソッド) は、クラスをインスタンス化せずに呼び出され、クラスインスタンスを介して呼び出すことはできません。静的メソッドは、アプリケーションのユーティリティ関数を作成するためによく使用されますが、静的プロパティは、キャッシュ、固定構成、またはインスタンス間で複製する必要のないその他のデータに役立ちます。

というわけで

「クラス文の中で変数を使いたい時に静的プロパティを使用する。」

別にそれなら普通のフィールドでよいです。

js

1class Test { 2 name = "太郎"; 3 constructor() {} 4 hello() { 5 console.log("hello" + this.name); 6 } 7} 8 9const insta = new Test(); 10 11insta.hello();

またはこう

js

1class Test { 2 3 constructor() { 4 this.name = "太郎" 5 } 6 hello() { 7 console.log("hello" + this.name); 8 } 9} 10 11const insta = new Test(); 12 13insta.hello();

投稿2021/11/29 06:53

ozwk

総合スコア13553

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bag_ai

2021/11/29 11:46

ありがとうございます。 確かにコンストラクタに引数していせず、そのまま入れてしまえは出来ますね。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問