[過去ログ] JavaScript の質問用スレッド vol.125 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
65
(1): (ワッチョイ 232c-HH83 [219.162.239.51]) 2022/09/07(水)19:11 ID:8NMkvrFG0(1) AAS
Ruby で書くと、
initialize は、constructor

class A
def initialize
@x = 0
end

def f_1
@x = 1
end

def f_2( num )
省8
66
(1): (スッップ Sd43-5GnA [49.98.171.228]) 2022/09/07(水)19:17 ID:GIiuva0od(1) AAS
>>64
それ何にも疑問の解決になってないだろう
67: (ワッチョイ 6501-bBdM [60.85.61.123]) 2022/09/07(水)20:26 ID:LU0OXBc/0(2/2) AAS
>>66
↓のsetAとcalcAの違いを聞いてるんじゃないのか?

class Foo {
constructor (a) {
this.A = a;
}
setA (a) {
this.A = calc(a);
}
calcA (a) {
省4
68
(1): (ワッチョイ 2b7c-QaXK [113.43.107.134]) 2022/09/08(木)00:18 ID:rIQlC2lz0(1) AAS
すいません。以下の様な状況でfuncCからfuncBまたはB'が呼ばれる状況を考えていました。B'のほうが楽な気がして。そもそも意味不明な質問だったら申し訳ないです…
```
class Foo{
varA; // varAの値はよそから取得

funcB (a){
//aに対する処理
return a;}

funcB' (){
//this.varAに対する処理
}
省7
69: 65 (ワッチョイ 232c-HH83 [219.162.239.51]) 2022/09/08(木)07:17 ID:eI1uoUaK0(1) AAS
Ruby では、>>65
に書いたように、

def f_1
@x = 1
end

みたいに、クラス内のインスタンスメソッド・f_1 内で、
インスタンス変数・@x を使えるので、一々、引数で渡す必要がない
70
(1): (ワッチョイ 955f-Iguz [14.13.137.64]) 2022/09/08(木)19:40 ID:6QKcdu8L0(1) AAS
オブジェクト指向の一般的な話としては、クラス内の関数であればクラス内のメンバはいじっても問題ないと思う。

ただ、「どこの関数がこのメンバを触ってるのかわからない」ってほどクラスが巨大化するなら、もはやそれはたちの悪いグローバル変数そのものなので設計からおかしい。
71
(1): (ワッチョイ 6501-CzlZ [60.85.61.123]) 2022/09/08(木)22:51 ID:D/mmzJCP0(1) AAS
>>68
一つ一つのコードの意味を理解して、一つ一つのコードでなぜをそれを使うのか、と自問して答えを出せば、自ずと答えが出てくる
質問していない部分で突っ込みどころが多すぎて、「何も考えてないんだな」と思わせられる

外部リンク:jsfiddle.net
・なぜ 全ての関数は返り値を持たないのか?
・なぜ Foo1#funcB は静的関数ではないのか?
・なぜ Foo1#funcC,Foo2#funcC は返り値ではなく、グローバル変数に演算結果を格納したのか?
・なぜ Foo2#varA の初期化にコンストラクタの引数を使わないのか?

こういう質問全てにこたえられるぐらいに考えられないと良いコードはかけない

外部リンク:jsfiddle.net
省4
72
(1): (オッペケ Sr81-3vxq [126.254.237.221]) 2022/09/08(木)23:10 ID:DGEh14TYr(1) AAS
それがプログラミング初心者に投げつける言葉かよ・・・
そういう知識や判断力もゆくゆくは必要だけども物事には順序ってもんがあってまだその域ではなかろう
マウントが取りたいだけならもっと近いレベルの相手にやんなよ
73: (テテンテンテン MM4b-HSKh [133.106.60.103]) 2022/09/08(木)23:23 ID:xrpQvLAzM(1) AAS
>>63
いいと思うよ
というかBに汎用性を持たせるのは微妙
74
(1): (アウアウウー Sa69-QaXK [106.129.156.188]) 2022/09/09(金)09:56 ID:Rq87TVpoa(1) AAS
this.Aで書いた方が手っ取り早いことが多い気がしたのですが、そちらでもいいけどスコープに注意しないとバグの要因になる、グローバル変数を濫用しないようにというのと相似形の似たような話という認識でいいでしょうか。
下手したら必然性なく両者を混在させてしまったりしそうなので注意したいと思います。参照透過性とか言葉自体知りませんでした…
参考になりました。ありがとうございます。
75: (スップ Sd03-5GnA [1.75.3.22]) 2022/09/09(金)11:06 ID:hB1+BppPd(1) AAS
>>74
今は>>70の理解でいいと思うよ
今の時点であまり詰め込んでもしょうがないし
>>71みたいなののせいで萎縮しないでね
76: (ワッチョイ 6501-CzlZ [60.85.61.123]) 2022/09/09(金)19:12 ID:0zkp1JmC0(1) AAS
>>72
> 物事には順序ってもんがあってまだその域ではなかろう

順序が大切なことには同意
ダメ出しがたくさんあるのは「学習の順序」が間違っているから
いろいろと学習を飛ばしてコードを書いており、その質問をする域に達していない
初心者だからこそ、もっと基礎的な課題から取り組むのが現実解だと俺は思う
今までの受け答えを見る限り、付け焼刃で知識をつけているように俺には見える

> マウントが取りたいだけならもっと近いレベルの相手にやんなよ

マウントを取りたいわけじゃない
77: (ワッチョイ 232c-HH83 [219.162.235.49]) 2022/09/09(金)20:14 ID:n8dQNxep0(1) AAS
だから、オブジェクト指向とかプログラミングは、Ruby から始めるべき。
JavaScript(JS)みたいなややこしいもので、デザインパターンを学ぶべきではない

改訂2版 Ruby逆引きハンドブック
の1冊だけで、かなりのモジュール・ライブラリの使い方も分かる

同じページ数でも、JSなら、文法だけで終わる。
20年以上のJSの歴史を追っかけて行くから、文法だけでもRubyの5倍ぐらいある

だから、こういう言語へ手を出したらダメ。
Rubyist は、JSなどをコピペで済ます。
深い所までやらない。分量的に切りがない
78: (ワッチョイ a95f-pw5f [14.8.104.32]) 2022/09/10(土)00:48 ID:1NdnS3vZ0(1) AAS
学習の順序とか提示せずに「何も考えてない」と切り捨てるのはマウンティングに入らないんですか?
79: (ワッチョイ 1901-T2pD [60.85.61.123]) 2022/09/10(土)06:13 ID:Cpvx7Vnj0(1/2) AAS
回答者相手にマウントとってる人に真面目に答えるだけ無駄か
そんな暇があったら、質問者に回答すればいいのに
80
(1): (オッペケ Src5-qUKH [126.254.242.25]) 2022/09/10(土)09:58 ID:aLnVTfHzr(1) AAS
君は高圧的な正しさで初心者を殴ってるだけ
人にものを教えるのには向いてないと思うよ
81: (ワッチョイ 1901-V+uT [60.85.61.123]) 2022/09/10(土)11:01 ID:Cpvx7Vnj0(2/2) AAS
>>80
5chはそういうものと思っていたが、それがこのスレの流儀なら気を付ける
だが、回答者に高圧的だったり、回答者にマウントをとる人も是正されるような公平な世界であってほしいね
82: (オッペケ Src5-qUKH [126.254.179.217]) 2022/09/10(土)11:48 ID:DabBJhVCr(1) AAS
具体的にどの発言に対して言ってるのかわからんけど
そういう何か言い返さないと気がすまないって気持ちは心の中にしまっておいた方がいいんじゃないかな
83: (スップ Sd33-A6fq [49.97.111.223]) 2022/09/10(土)13:25 ID:JRksiUpNd(1) AAS
自分の過ちを認めると負けたみたいでプライドが傷つくから
俺も悪かったけどお前らも悪いから引き分けだよねということにしたい心理の表れ
84
(1): (ワッチョイ 6910-Vaw7 [180.12.82.129]) 2022/09/11(日)20:15 ID:yDUj5jeF0(1/2) AAS
元の配列を関数内で空にしたいけどうまくいきません
100と表示されてしまったので空になっていませんでした。
配列は参照渡しなので元の配列も書き換えられると思ったんだけど
どうやれば関数内で元の配列を空にできますか?returnは使いたくないです。

let a_list = [100,200,300];
test(a_list);

function test(b_list){
b_list = [];
}
alert(a_list[0])
1-
あと 918 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.014s