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

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

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

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

Q&A

解決済

2回答

754閲覧

IF文のあるメソッドにオブジェクトを入れて、出力したいのですが、同じ文章しかでず、IF文が機能しません。

Chibichan

総合スコア72

JavaScript

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

0グッド

0クリップ

投稿2020/08/11 17:23

IF文で2通りの分を出力したいのですが、2文とも(Mikkoは、Leaより3500多く稼いでいます)になってしまいます。IF文がおかしいのでしょうか、それとも別の問題でしょうか。

function

1 this.nimi = nimi; 2 this.tyo = tyo; 3 this.palkka = palkka; 4 this.vertaaPalkka = vertaaPalkka; 5} 6var henk1 = new Henkilo("Mikko","JS-Koodari",5000); 7var henk2 = new Henkilo("Lea","Python-koodari",1500); 8var henk3 = new Henkilo("Pena","Opettaja",1000); 9 10function vertaaPalkka() { 11 if (henk1.palkka > henk2.palkka){ 12 var ero = henk1.palkka-henk2.palkka; 13 console.log(henk1.nimi,"は、",henk2.nimi,"より",ero,"多く稼いでいます"); 14 } 15 else if(henk2.palkka<henk3.palkka){ 16 var minus = henk2.palkka-henk3.palkka; 17 console.log(henk3.nimi, "は、",henk2.nimi",より",minus,"少なく稼いでいます"); 18 } 19 20} 21henk1.vertaaPalkka(henk2); 22henk3.vertaaPalkka(henk2);

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

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

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

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

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

m.ts10806

2020/08/11 20:42

コードを半端に提示されてもこちらで再現できませんので、コピペで動作するコードを提示してください
Chibichan

2020/08/12 05:38

自動チェックなので、コードはわかりません
m.ts10806

2020/08/12 05:54

ちょっと意味が分からないですが、コードの出典はどこでしょうか。
Chibichan

2020/08/12 06:00

すいません、一番上が抜けてました。function Henkilo(nimi,tyo,palkka)が一番上に入ります。
guest

回答2

0

ベストアンサー

データの参照の仕方をケアしてください

javascript

1<script> 2function Henkilo(nimi,tyo,palkka){ 3 this.nimi = nimi; 4 this.tyo = tyo; 5 this.palkka = palkka; 6 this.vertaaPalkka = vertaaPalkka; 7} 8var henk1 = new Henkilo("Mikko","JS-Koodari",5000); 9var henk2 = new Henkilo("Lea","Python-koodari",1500); 10var henk3 = new Henkilo("Pena","Opettaja",1000); 11 12function vertaaPalkka(n) { 13 if (this.palkka > n.palkka){ 14 var ero = this.palkka-henk2.palkka; 15 console.log(this.nimi,"は、",n.nimi,"より",ero,"多く稼いでいます"); 16 }else if(this.palkka < n.palkka){ 17 var minus = n.palkka-this.palkka; 18 console.log(this.nimi, "は、",n.nimi,"より",minus,"少なく稼いでいます"); 19 }else{ 20 console.log(this.nimi, "と",n.nimi,"の稼ぎは同じです"); 21 } 22} 23henk1.vertaaPalkka(henk2); 24henk3.vertaaPalkka(henk2); 25henk2.vertaaPalkka(henk2); 26</script>

投稿2020/08/12 02:31

yambejp

総合スコア114779

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

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

Chibichan

2020/08/12 05:39

ありがとうございます!
guest

0

せっかくオブジェクトメソッドを使っているのに、
固定値(外側スコープの変数値)を使って計算しているからです。
メソッド内で、引数や、そのオブジェクト自体が入る、thisを使い、オブジェクト毎で結果が変わるように構文組んでください。

投稿2020/08/11 19:04

miyabi_takatsuk

総合スコア9528

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

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

Chibichan

2020/08/12 05:39

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問