[過去ログ]
JavaScript の質問用スレッド vol.125 (1002レス)
JavaScript の質問用スレッド vol.125 http://mevius.5ch.net/test/read.cgi/tech/1659855460/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
68: デフォルトの名無しさん (ワッチョイ 2b7c-QaXK [113.43.107.134]) [] 2022/09/08(木) 00:18:00.64 ID:rIQlC2lz0 すいません。以下の様な状況でfuncCからfuncBまたはB'が呼ばれる状況を考えていました。B'のほうが楽な気がして。そもそも意味不明な質問だったら申し訳ないです… ``` class Foo{ varA; // varAの値はよそから取得 funcB (a){ //aに対する処理 return a;} funcB' (){ //this.varAに対する処理 } funcC(){ ans = funcB(this.varA); または funcB'(); ans = this.varA; } } http://mevius.5ch.net/test/read.cgi/tech/1659855460/68
69: 65 (ワッチョイ 232c-HH83 [219.162.239.51]) [sage] 2022/09/08(木) 07:17:36.21 ID:eI1uoUaK0 Ruby では、>>65 に書いたように、 def f_1 @x = 1 end みたいに、クラス内のインスタンスメソッド・f_1 内で、 インスタンス変数・@x を使えるので、一々、引数で渡す必要がない http://mevius.5ch.net/test/read.cgi/tech/1659855460/69
70: デフォルトの名無しさん (ワッチョイ 955f-Iguz [14.13.137.64]) [sage] 2022/09/08(木) 19:40:45.35 ID:6QKcdu8L0 オブジェクト指向の一般的な話としては、クラス内の関数であればクラス内のメンバはいじっても問題ないと思う。 ただ、「どこの関数がこのメンバを触ってるのかわからない」ってほどクラスが巨大化するなら、もはやそれはたちの悪いグローバル変数そのものなので設計からおかしい。 http://mevius.5ch.net/test/read.cgi/tech/1659855460/70
71: デフォルトの名無しさん (ワッチョイ 6501-CzlZ [60.85.61.123]) [sage] 2022/09/08(木) 22:51:00.93 ID:D/mmzJCP0 >>68 一つ一つのコードの意味を理解して、一つ一つのコードでなぜをそれを使うのか、と自問して答えを出せば、自ずと答えが出てくる 質問していない部分で突っ込みどころが多すぎて、「何も考えてないんだな」と思わせられる https://jsfiddle.net/qem7cLyf/ ・なぜ 全ての関数は返り値を持たないのか? ・なぜ Foo1#funcB は静的関数ではないのか? ・なぜ Foo1#funcC,Foo2#funcC は返り値ではなく、グローバル変数に演算結果を格納したのか? ・なぜ Foo2#varA の初期化にコンストラクタの引数を使わないのか? こういう質問全てにこたえられるぐらいに考えられないと良いコードはかけない https://jsfiddle.net/s27mxepn/ ・可能な限り、変数のスコープはせまくあるべき ・可能な限り、関数は参照透過性を持つべき 今後、インスタンスプロパティを拡張する予定があるならclassを使うべきだし、そうでないなら静的関数で十分 >>64で示した挙動の違いだけで十分に判断できる http://mevius.5ch.net/test/read.cgi/tech/1659855460/71
72: デフォルトの名無しさん (オッペケ Sr81-3vxq [126.254.237.221]) [sage] 2022/09/08(木) 23:10:43.06 ID:DGEh14TYr それがプログラミング初心者に投げつける言葉かよ・・・ そういう知識や判断力もゆくゆくは必要だけども物事には順序ってもんがあってまだその域ではなかろう マウントが取りたいだけならもっと近いレベルの相手にやんなよ http://mevius.5ch.net/test/read.cgi/tech/1659855460/72
73: デフォルトの名無しさん (テテンテンテン MM4b-HSKh [133.106.60.103]) [sage] 2022/09/08(木) 23:23:08.03 ID:xrpQvLAzM >>63 いいと思うよ というかBに汎用性を持たせるのは微妙 http://mevius.5ch.net/test/read.cgi/tech/1659855460/73
74: デフォルトの名無しさん (アウアウウー Sa69-QaXK [106.129.156.188]) [] 2022/09/09(金) 09:56:50.51 ID:Rq87TVpoa this.Aで書いた方が手っ取り早いことが多い気がしたのですが、そちらでもいいけどスコープに注意しないとバグの要因になる、グローバル変数を濫用しないようにというのと相似形の似たような話という認識でいいでしょうか。 下手したら必然性なく両者を混在させてしまったりしそうなので注意したいと思います。参照透過性とか言葉自体知りませんでした… 参考になりました。ありがとうございます。 http://mevius.5ch.net/test/read.cgi/tech/1659855460/74
75: デフォルトの名無しさん (スップ Sd03-5GnA [1.75.3.22]) [] 2022/09/09(金) 11:06:49.13 ID:hB1+BppPd >>74 今は>>70の理解でいいと思うよ 今の時点であまり詰め込んでもしょうがないし >>71みたいなののせいで萎縮しないでね http://mevius.5ch.net/test/read.cgi/tech/1659855460/75
76: デフォルトの名無しさん (ワッチョイ 6501-CzlZ [60.85.61.123]) [sage] 2022/09/09(金) 19:12:54.25 ID:0zkp1JmC0 >>72 > 物事には順序ってもんがあってまだその域ではなかろう 順序が大切なことには同意 ダメ出しがたくさんあるのは「学習の順序」が間違っているから いろいろと学習を飛ばしてコードを書いており、その質問をする域に達していない 初心者だからこそ、もっと基礎的な課題から取り組むのが現実解だと俺は思う 今までの受け答えを見る限り、付け焼刃で知識をつけているように俺には見える > マウントが取りたいだけならもっと近いレベルの相手にやんなよ マウントを取りたいわけじゃない http://mevius.5ch.net/test/read.cgi/tech/1659855460/76
77: デフォルトの名無しさん (ワッチョイ 232c-HH83 [219.162.235.49]) [sage] 2022/09/09(金) 20:14:57.93 ID:n8dQNxep0 だから、オブジェクト指向とかプログラミングは、Ruby から始めるべき。 JavaScript(JS)みたいなややこしいもので、デザインパターンを学ぶべきではない 改訂2版 Ruby逆引きハンドブック の1冊だけで、かなりのモジュール・ライブラリの使い方も分かる 同じページ数でも、JSなら、文法だけで終わる。 20年以上のJSの歴史を追っかけて行くから、文法だけでもRubyの5倍ぐらいある だから、こういう言語へ手を出したらダメ。 Rubyist は、JSなどをコピペで済ます。 深い所までやらない。分量的に切りがない http://mevius.5ch.net/test/read.cgi/tech/1659855460/77
78: デフォルトの名無しさん (ワッチョイ a95f-pw5f [14.8.104.32]) [sage] 2022/09/10(土) 00:48:49.86 ID:1NdnS3vZ0 学習の順序とか提示せずに「何も考えてない」と切り捨てるのはマウンティングに入らないんですか? http://mevius.5ch.net/test/read.cgi/tech/1659855460/78
79: デフォルトの名無しさん (ワッチョイ 1901-T2pD [60.85.61.123]) [sage] 2022/09/10(土) 06:13:53.00 ID:Cpvx7Vnj0 回答者相手にマウントとってる人に真面目に答えるだけ無駄か そんな暇があったら、質問者に回答すればいいのに http://mevius.5ch.net/test/read.cgi/tech/1659855460/79
80: デフォルトの名無しさん (オッペケ Src5-qUKH [126.254.242.25]) [sage] 2022/09/10(土) 09:58:22.29 ID:aLnVTfHzr 君は高圧的な正しさで初心者を殴ってるだけ 人にものを教えるのには向いてないと思うよ http://mevius.5ch.net/test/read.cgi/tech/1659855460/80
81: デフォルトの名無しさん (ワッチョイ 1901-V+uT [60.85.61.123]) [sage] 2022/09/10(土) 11:01:57.14 ID:Cpvx7Vnj0 >>80 5chはそういうものと思っていたが、それがこのスレの流儀なら気を付ける だが、回答者に高圧的だったり、回答者にマウントをとる人も是正されるような公平な世界であってほしいね http://mevius.5ch.net/test/read.cgi/tech/1659855460/81
82: デフォルトの名無しさん (オッペケ Src5-qUKH [126.254.179.217]) [sage] 2022/09/10(土) 11:48:27.08 ID:DabBJhVCr 具体的にどの発言に対して言ってるのかわからんけど そういう何か言い返さないと気がすまないって気持ちは心の中にしまっておいた方がいいんじゃないかな http://mevius.5ch.net/test/read.cgi/tech/1659855460/82
83: デフォルトの名無しさん (スップ Sd33-A6fq [49.97.111.223]) [sage] 2022/09/10(土) 13:25:36.79 ID:JRksiUpNd 自分の過ちを認めると負けたみたいでプライドが傷つくから 俺も悪かったけどお前らも悪いから引き分けだよねということにしたい心理の表れ http://mevius.5ch.net/test/read.cgi/tech/1659855460/83
84: デフォルトの名無しさん (ワッチョイ 6910-Vaw7 [180.12.82.129]) [] 2022/09/11(日) 20:15:23.24 ID:yDUj5jeF0 元の配列を関数内で空にしたいけどうまくいきません 100と表示されてしまったので空になっていませんでした。 配列は参照渡しなので元の配列も書き換えられると思ったんだけど どうやれば関数内で元の配列を空にできますか?returnは使いたくないです。 let a_list = [100,200,300]; test(a_list); function test(b_list){ b_list = []; } alert(a_list[0]) http://mevius.5ch.net/test/read.cgi/tech/1659855460/84
85: デフォルトの名無しさん (ワッチョイ 818b-pqEy [210.228.102.1]) [sage] 2022/09/11(日) 20:29:51.41 ID:bqV48/aB0 >>84 function test(b_list) { b_list.length = 0 } http://mevius.5ch.net/test/read.cgi/tech/1659855460/85
86: デフォルトの名無しさん (ワッチョイ 6910-V+uT [180.12.82.129]) [] 2022/09/11(日) 21:06:49.62 ID:yDUj5jeF0 >>85 できました ありがとうございます http://mevius.5ch.net/test/read.cgi/tech/1659855460/86
87: デフォルトの名無しさん (オッペケ Src5-yIeJ [126.205.215.107]) [] 2022/09/12(月) 09:29:51.85 ID:ptOOOLgwr b_list = []; が何故ダメかというとb_listを空にしてるんじゃなくて b_listに新しい配列を代入してるだけだから ということは覚えておこう http://mevius.5ch.net/test/read.cgi/tech/1659855460/87
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 915 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.012s