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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
60: (ワッチョイ 3501-bBdM [126.94.243.226]) 2022/09/05(月)18:51 ID:ng2JfbNn0(1/3) AAS
>>50
JavaScriptコードが不明なので正確な回答は不可能

>>58の想定通りなら、おそらくその実装が一番楽
tr要素ノードにclickイベントハンドラでwindow.openする実装と仮定して、下記実装が考えられる

1. elementdataset.hrefでリンク先アドレスを得る
2. createElementでa要素ノード生成
3. replaceChildで(A)のDOMになるよう調節
4. tr要素ノードの仕掛けられたであろうclickイベントハンドラをevent.stopImmediatePropagation()で封印

(A)
<tr class=”〇〇〇” data-href=”★リンク先アドレス★” data-target=”〇〇〇”>
省5
61
(1): (ワッチョイ 3501-bBdM [126.94.243.226]) 2022/09/05(月)19:18 ID:ng2JfbNn0(2/3) AAS
>>59
XPath式を使えば、textContentを使わなくて済む
外部リンク:jsfiddle.net
62: (ワッチョイ 3501-bBdM [126.94.243.226]) 2022/09/05(月)19:25 ID:ng2JfbNn0(3/3) AAS
>>61
テキストノードを子に持つ要素ノードを捕捉するコードにすればよかった
外部リンク:jsfiddle.net
63
(2): (アウアウウー Sa69-QaXK [106.129.180.164]) 2022/09/07(水)17:04 ID:zBxXyTwva(1) AAS
プログラミング初心者でJavaScriptを勉強してます。
メンバ変数A、メソッドBを持つクラスがあり、メソッドBの中で変数Aを活用(Aを用いた処理やAの変更)したいのですが、
Aを引数としてBに渡して返り値として受け取るのと、Bの中で直接this.Aと記述して処理するのは何か違いがありますか?
メソッドBに別の変数を渡す可能性があるなら前者でないといけないのでしょうが、そうでなければ後者の書き方でよいでしょうか?
64
(2): (ワッチョイ 6501-vbgY [60.85.61.123]) 2022/09/07(水)18:23 ID:LU0OXBc/0(1/2) AAS
>>63
this.Aは全てのインスタンスメソッドで参照できる
this.Aはインスタンスを参照可能なスコープ上で参照可能

仮引数AはメソッドBの関数スコープ外から参照不可能
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
回答者相手にマウントとってる人に真面目に答えるだけ無駄か
そんな暇があったら、質問者に回答すればいいのに
1-
あと 923 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.014s