!extend:checked:vvvvvv:1000:512
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-5のテンプレを読んだ上で質問してください。次スレは>>950が>>2の「次スレの立て方」を元に立ててください
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
■前スレ
JavaScript の質問用スレッド vol.124
https://mevius.5ch.net/test/read.cgi/tech/1636525464/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:: EXT was configured
探検
JavaScript の質問用スレッド vol.125
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 1301-RMnj [36.240.123.227])
2022/08/07(日) 15:57:40.26ID:TS5TGpUB0764デフォルトの名無しさん (スップ Sd42-Gkow [49.97.109.220])
2023/03/19(日) 22:37:02.99ID:SC8SOdGAd >>763
パーサーにケチつけてるよりはその方が建設的でしょうよ
パーサーにケチつけてるよりはその方が建設的でしょうよ
765デフォルトの名無しさん (アウアウウー Sa9b-jnF6 [106.133.163.48])
2023/03/20(月) 03:23:46.29ID:iV2jn8x9a >>738
VSCode の拡張機能では、
open in browser では、ローカルファイルアクセスになる。
この場合、CORS など、ブラウザの色々な制限がある
file:///C:/Users/Owner/Documents/test/index.html
一方、Live Server では、
自分のPC 内にサーバーを立ててから、そこから配信されるので、テストしやすい
http://127.0.0.1:5500/test/index.html
>>751
そういうのは、Excel, VBA, Access とかじゃないの?
ベンチャー企業やプロのバックエンドは、Ruby on Rails だけど
VSCode の拡張機能では、
open in browser では、ローカルファイルアクセスになる。
この場合、CORS など、ブラウザの色々な制限がある
file:///C:/Users/Owner/Documents/test/index.html
一方、Live Server では、
自分のPC 内にサーバーを立ててから、そこから配信されるので、テストしやすい
http://127.0.0.1:5500/test/index.html
>>751
そういうのは、Excel, VBA, Access とかじゃないの?
ベンチャー企業やプロのバックエンドは、Ruby on Rails だけど
766デフォルトの名無しさん (アウアウウー Sa9b-jnF6 [106.133.163.48])
2023/03/20(月) 04:02:42.23ID:iV2jn8x9a >>743
Promise.all/allSettled とか?
Promise.all/allSettled とか?
767デフォルトの名無しさん (ワッチョイ a3ad-a1qf [210.250.191.46])
2023/03/20(月) 19:47:12.99ID:PTBUy+ct0 chromeの拡張機能で、「ngWord.json」内のデータを「background.js」経由で「content_script.js」に格納しようとしていたのですが、上手くいきません。コードでおかしな点等あれば、ご教授頂けないでしょうか。
【background.js】
fetch('ngWord.json')
.then(response => response.json())
.then(data => {
// content_script.jsにデータを送信
chrome.runtime.sendMessage({ngWords: data});
});
【content_script.js】
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
if (message.ngWords) {
const ngWords = message.ngWords;
console.log(ngWords); // 受信したデータを表示
}
});
【background.js】
fetch('ngWord.json')
.then(response => response.json())
.then(data => {
// content_script.jsにデータを送信
chrome.runtime.sendMessage({ngWords: data});
});
【content_script.js】
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
if (message.ngWords) {
const ngWords = message.ngWords;
console.log(ngWords); // 受信したデータを表示
}
});
768デフォルトの名無しさん (ワッチョイ c603-MaqH [153.222.136.198])
2023/03/20(月) 19:56:51.89ID:hUotJVz90 >>767
バックグラウンドからタブに送信するならchrome.tabs.sendMessageじゃないかな?
バックグラウンドからタブに送信するならchrome.tabs.sendMessageじゃないかな?
769デフォルトの名無しさん (ワッチョイ a3ad-a1qf [210.250.191.46])
2023/03/20(月) 20:37:35.10ID:PTBUy+ct0 >>768
「タブ」というのは、「content_script.js」のことでしょうか?
だとすると「chrome.tabs.sendMessage(tabId: content_script.js, ngWords: data)のように書く感じでしょうか。
「タブ」というのは、「content_script.js」のことでしょうか?
だとすると「chrome.tabs.sendMessage(tabId: content_script.js, ngWords: data)のように書く感じでしょうか。
770デフォルトの名無しさん (テテンテンテン MM4e-7n5R [133.106.242.180])
2023/03/20(月) 20:53:08.72ID:mlA7fjwPM 雑な方法としてはアクティブなタブに送ればいいんちゃう?
771デフォルトの名無しさん (ワッチョイ c603-MaqH [153.222.136.198])
2023/03/20(月) 21:36:27.87ID:hUotJVz90 >>769
そうです。background から content_script に送信する場合はchrome.tabs.sndMessage だったと思いますよ
chrome.tabs.query({active:true,(tabs)=>{
chrome.tabs.sndMessage(tabs[0].id,{
ngWordsg:data
})
}})
というような感じで
そうです。background から content_script に送信する場合はchrome.tabs.sndMessage だったと思いますよ
chrome.tabs.query({active:true,(tabs)=>{
chrome.tabs.sndMessage(tabs[0].id,{
ngWordsg:data
})
}})
というような感じで
772デフォルトの名無しさん (ワッチョイ f761-ItkS [124.86.236.22])
2023/03/20(月) 21:40:33.20ID:xjtq7KFo0 最初にコンテンツスクリプト側から何かメッセージ送れば
バックグラウンド側のchrome.runtime.onmessage.addListenerのsender.tab.idでタブID取れるっしょ
バックグラウンド側のchrome.runtime.onmessage.addListenerのsender.tab.idでタブID取れるっしょ
773デフォルトの名無しさん (ワッチョイ c603-MaqH [153.222.136.198])
2023/03/20(月) 21:49:32.93ID:hUotJVz90 それならtab.id必要なくてsendResponseで返せるんじゃないかな?
774デフォルトの名無しさん (ワッチョイ a3ad-a1qf [210.250.191.46])
2023/03/20(月) 21:53:15.40ID:PTBUy+ct0 【background.js】
fetch('ngWord.json')
.then(response => response.json())
.then(data => {
chrome.tabs.query({active:true,(tabs)=>{
chrome.tabs.sendMessage(tabs[0].id,{ngWords:data})
});
};
【content_script.js】
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
if (message.ngWords) {
const ngWords = message.ngWords;
console.log(ngWords);
}
});
このように修正しましたが、上手く取得できないようです。
fetch('ngWord.json')
.then(response => response.json())
.then(data => {
chrome.tabs.query({active:true,(tabs)=>{
chrome.tabs.sendMessage(tabs[0].id,{ngWords:data})
});
};
【content_script.js】
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
if (message.ngWords) {
const ngWords = message.ngWords;
console.log(ngWords);
}
});
このように修正しましたが、上手く取得できないようです。
775デフォルトの名無しさん (ワッチョイ c603-MaqH [153.222.136.198])
2023/03/20(月) 22:00:26.17ID:hUotJVz90 そもそもngWord.jsonの中身とれてますか?ローカルファイルならweb_accessible_resources書いてchrome.extension.getURLで取るんじゃないでしょうか?
776デフォルトの名無しさん (ワッチョイ f761-ItkS [124.86.236.22])
2023/03/20(月) 22:04:38.80ID:xjtq7KFo0 もしかしてスクリプト本当にそれだけなの?
だとしたらcontent_script.js実行される前にbackground.js終わってそう
だとしたらcontent_script.js実行される前にbackground.js終わってそう
777デフォルトの名無しさん (ワッチョイ a3ad-a1qf [210.250.191.46])
2023/03/20(月) 22:24:56.04ID:PTBUy+ct0 申し訳ありません、私の知識不足で、よく分かりません。もう一度格闘して、改めて質問させて頂きます。ご教授下さり、ありがとうございます。
778デフォルトの名無しさん (ワッチョイ c603-MaqH [153.222.136.198])
2023/03/20(月) 23:58:23.18ID:hUotJVz90 >>777
めっちゃ適当なこと言ってましたわ
web_accessible_resourcesとchrome.extention.getURLは関係ないっぽいです
まずcontent_scriptが実行されるタイミングでbackgroundからタブにデータを送れるはずなくて
かといってcontent _scriptからメッセージ送ってbackgroundでfetchしたデータを送ろうとしてもセキュリティー的になのか送れない
なのでbackgroundでfetchしたjsonをchrome.storage.local.setで保存してcontent _scriptからchrome.storage.local.getで読み込むが正解っぽいです
暇だったんで...
めっちゃ適当なこと言ってましたわ
web_accessible_resourcesとchrome.extention.getURLは関係ないっぽいです
まずcontent_scriptが実行されるタイミングでbackgroundからタブにデータを送れるはずなくて
かといってcontent _scriptからメッセージ送ってbackgroundでfetchしたデータを送ろうとしてもセキュリティー的になのか送れない
なのでbackgroundでfetchしたjsonをchrome.storage.local.setで保存してcontent _scriptからchrome.storage.local.getで読み込むが正解っぽいです
暇だったんで...
779デフォルトの名無しさん (アウアウウー Sa9b-jnF6 [106.146.108.71])
2023/03/21(火) 04:01:46.37ID:rEPYZ+tza 漏れはプロジェクトを作って、index.ts に、TypeScript で以下を書いて、
npm/yarn, webpack, babel でビルドすれば、
import で、JSON ファイルやLodash も読み込めるけど
import WordData from "./word_data_tmp.json";
console.log( WordData.length )
const ary = [ ...Array( 5 ).keys( ) ]
// => [0, 1, ....,4]
import shuffle from 'lodash.shuffle';
console.log( shuffle( ary ) );
// => シャッフルされる
npm/yarn, webpack, babel でビルドすれば、
import で、JSON ファイルやLodash も読み込めるけど
import WordData from "./word_data_tmp.json";
console.log( WordData.length )
const ary = [ ...Array( 5 ).keys( ) ]
// => [0, 1, ....,4]
import shuffle from 'lodash.shuffle';
console.log( shuffle( ary ) );
// => シャッフルされる
780デフォルトの名無しさん (ブーイモ MMbf-LIH3 [49.239.65.144])
2023/03/25(土) 14:02:02.15ID:MQIuadNDM Next.jsでAPI Routesを使わないのは一般的でしょうか?
781デフォルトの名無しさん (ワッチョイ cb01-KNGW [60.87.173.172])
2023/03/25(土) 18:19:14.13ID:1/y/Yy4J0 「一般的」のような主観的なものてはなく、客観的な定義が必要なのでは
782デフォルトの名無しさん (ワッチョイ eb5f-DdLV [14.8.104.32])
2023/03/28(火) 20:12:53.97ID:RtCr5Rz10 プロミスって何?
あとfetchってasync、await使うのと.then使うのでどっちがいいの?
あとfetchってasync、await使うのと.then使うのでどっちがいいの?
783デフォルトの名無しさん (ワッチョイ 1ff0-wSlO [211.19.68.36])
2023/03/29(水) 11:27:02.70ID:NxiPtBQP0784デフォルトの名無しさん (スップ Sdbf-I21X [1.72.0.185])
2023/03/29(水) 12:55:23.79ID:y04hNuo/d 消費者金融機関だよ
785デフォルトの名無しさん (ワッチョイ eb5f-DdLV [14.8.104.32])
2023/03/29(水) 13:11:20.35ID:6965UHWi0 >>784
絶対に許せないのでxhrにしますね
絶対に許せないのでxhrにしますね
786デフォルトの名無しさん (ワッチョイ 1f8b-3uzD [211.5.157.105])
2023/03/31(金) 02:32:51.01ID:VdncSfH00 メイン画面でボタンをクリックすると
別ウィンドウが起動し、ニュースサイトを表示するプログラムを組んでいます。
別ウィンドウが起動した時に
そのウィンドウが閉じられたのか、開かれたままであるのかを
メイン画面で判定するにはどういうコードを書けばよいでしょうか?
別ウィンドウでサイトが開かれている間は
1、2、3・・・とカウントし、閉じられると0を
メイン画面にjQueryでレンダリングしようとしています。
別ウィンドウが起動し、ニュースサイトを表示するプログラムを組んでいます。
別ウィンドウが起動した時に
そのウィンドウが閉じられたのか、開かれたままであるのかを
メイン画面で判定するにはどういうコードを書けばよいでしょうか?
別ウィンドウでサイトが開かれている間は
1、2、3・・・とカウントし、閉じられると0を
メイン画面にjQueryでレンダリングしようとしています。
787デフォルトの名無しさん (ワッチョイ 3bbd-OuhE [122.133.74.178])
2023/03/31(金) 03:09:38.31ID:29iJjOEC0 >>786
window.closed はどう?
window.closed はどう?
788デフォルトの名無しさん (ワッチョイ 1f8b-3uzD [211.5.157.105])
2023/03/31(金) 11:32:39.06ID:VdncSfH00789デフォルトの名無しさん (ワッチョイ 6910-bhMa [180.59.92.6])
2023/04/23(日) 22:40:30.72ID:k6QZkjYI0 先日(1週間くらい前)まで動いていたジャバスクリプトが動かなくなった。
ブラウザの不具合を疑って firefox、edge、さらに ie11 まで持ち出したらどれも動かない。
ウインドウズのセキュリティの締め上げかなと思って
スマホ(アンドロイド)で確認したがこっちも動いていない。
押し入れから昔のアイポッドタッチ(iOS9)を持ち出したが、やっぱ動かない。
こんなことってある?
アイポッドタッチなんてスクリプトが動いていたころとなに一つ変わっていないのに
なんでこの前は動いたのに今日は動かないんだ?
1年前のバックアップと差分比較してファイルが壊れていないことは確認した。
ちなみに自分がジャバスクリプトを作成するにあたって参考にしたスクリプトは
いまも普通に動いている。
ブラウザの不具合を疑って firefox、edge、さらに ie11 まで持ち出したらどれも動かない。
ウインドウズのセキュリティの締め上げかなと思って
スマホ(アンドロイド)で確認したがこっちも動いていない。
押し入れから昔のアイポッドタッチ(iOS9)を持ち出したが、やっぱ動かない。
こんなことってある?
アイポッドタッチなんてスクリプトが動いていたころとなに一つ変わっていないのに
なんでこの前は動いたのに今日は動かないんだ?
1年前のバックアップと差分比較してファイルが壊れていないことは確認した。
ちなみに自分がジャバスクリプトを作成するにあたって参考にしたスクリプトは
いまも普通に動いている。
790デフォルトの名無しさん (JP 0Hc5-/HYv [126.249.157.89])
2023/04/24(月) 07:00:31.38ID:z1nNn0o4H エラーも出てないのか?
まったく反応してないのならhtmlで読んでないんじゃね?
まったく反応してないのならhtmlで読んでないんじゃね?
791デフォルトの名無しさん (スプッッ Sd73-8Xzj [1.75.215.168])
2023/04/24(月) 08:37:00.30ID:Z0B9bFh/d 動いてた夢を見たんだ
792デフォルトの名無しさん (ワッチョイ a95f-LCeF [14.11.8.0 [上級国民]])
2023/04/24(月) 09:21:53.70ID:U4o0cUkO0793デフォルトの名無しさん (ワッチョイ 2bbd-L85M [49.129.243.228])
2023/04/24(月) 12:05:07.84ID:VtgoOt7B0 https の証明書が古い
794デフォルトの名無しさん (ワッチョイ 6910-bhMa [180.59.92.6])
2023/04/24(月) 13:08:00.47ID:MpRTlb310 >>792
エラーログを見たらあっさり解決しました。
夜更けに一人で大騒ぎしてごめんなさい orz
いまブラウザの開発者ツールでジャバスクリプトのエラーが見られるんだね。
びっくりした。
原因はHTMLの削除した部分にスクリプトで動かす部分があって
動かすべきものがないから次の処理に行けずエラーになっていました。
スクリプトばかり見ていてHTMLは盲点でした・・・。
エラーログを見たらあっさり解決しました。
夜更けに一人で大騒ぎしてごめんなさい orz
いまブラウザの開発者ツールでジャバスクリプトのエラーが見られるんだね。
びっくりした。
原因はHTMLの削除した部分にスクリプトで動かす部分があって
動かすべきものがないから次の処理に行けずエラーになっていました。
スクリプトばかり見ていてHTMLは盲点でした・・・。
795デフォルトの名無しさん (ワッチョイ 91bd-L85M [122.133.75.49])
2023/04/24(月) 13:15:26.56ID:3ESYAe520 開発者ツール超便利だよね
796デフォルトの名無しさん (オッペケ Src5-mXUZ [126.33.81.44])
2023/04/24(月) 13:22:29.25ID:sSUQNn8cr まあそういうオチだろうなとは
アドバイスを求めるならhtmlを修正したことは伝えるようにしてほしいところ
アドバイスを求めるならhtmlを修正したことは伝えるようにしてほしいところ
797デフォルトの名無しさん (JP 0Hc5-/HYv [126.249.157.89])
2023/04/25(火) 18:51:33.50ID:/Hd1NuvtH 解決したようでなによりなにより
798デフォルトの名無しさん (ワッチョイ eb7d-RykB [1.33.235.4])
2023/04/26(水) 19:26:29.99ID:lfd6T/fN0 http://abehiroshi.la.coocan.jp/
この阿部さんのHPの左のフレームから「舞台出演」を取得したいんだけど、
const frame = await page.$('frame[name="left"]');
const contentFrame = await frame.contentFrame();
こんな感じでcontentFrameを取得するところまでは上手く行くんだけど、
const aElement = await contentFrame.$('body table.today tr:nth-child(8) td:nth-child(3) p a');
次の要素を取得する段階になるとnullになってしいます
どうすれば阿部さんの舞台出演を取得できますか?
この阿部さんのHPの左のフレームから「舞台出演」を取得したいんだけど、
const frame = await page.$('frame[name="left"]');
const contentFrame = await frame.contentFrame();
こんな感じでcontentFrameを取得するところまでは上手く行くんだけど、
const aElement = await contentFrame.$('body table.today tr:nth-child(8) td:nth-child(3) p a');
次の要素を取得する段階になるとnullになってしいます
どうすれば阿部さんの舞台出演を取得できますか?
799デフォルトの名無しさん (ワッチョイ d961-99Et [220.107.169.163])
2023/04/26(水) 20:39:08.46ID:UfBGheQ30 >>798
.todayなんてclass付いてないぞい
.todayなんてclass付いてないぞい
800デフォルトの名無しさん (JP 0Hc5-/HYv [126.249.157.89])
2023/04/26(水) 22:57:11.72ID:Q5IzIMlUH それってJS?
801デフォルトの名無しさん (JP 0Hc5-/HYv [126.249.157.89])
2023/04/26(水) 23:08:17.75ID:Q5IzIMlUH そもそもnullを取得してるってことは所望のオブジェクトが取得できていないってことよん?
802デフォルトの名無しさん (エムゾネ FF33-Nhf9 [49.106.174.76])
2023/04/27(木) 13:47:05.09ID:jYECG79eF >>798
それ、ChromeのDevツールとかで、Elementの検索にセレクター入力してちゃんとヒットする?
それ、ChromeのDevツールとかで、Elementの検索にセレクター入力してちゃんとヒットする?
803デフォルトの名無しさん (ワッチョイ 03c2-+mtg [133.155.195.156])
2023/04/29(土) 00:34:06.33ID:FZLDUbkY0 ['apple', 'パイナップル', 'pineapple (パイナップル)', 'りんご', 'pineapple']
を
['apple', 'パイナップル | pineapple', 'りんご']
に別名ふくめて重複削除して整形したいんですがスマートな方法ないですか
を
['apple', 'パイナップル | pineapple', 'りんご']
に別名ふくめて重複削除して整形したいんですがスマートな方法ないですか
804デフォルトの名無しさん (ワッチョイ 23bd-MgCS [125.197.237.23])
2023/04/29(土) 01:41:53.10ID:bskwYySl0805デフォルトの名無しさん (ワッチョイ 03c2-+mtg [133.155.195.156])
2023/04/29(土) 01:58:50.79ID:FZLDUbkY0806デフォルトの名無しさん (ワッチョイ 23bd-MgCS [125.197.237.23])
2023/04/29(土) 02:08:42.66ID:bskwYySl0807デフォルトの名無しさん (ワッチョイ 03c2-+mtg [133.155.195.156])
2023/04/29(土) 02:20:05.97ID:FZLDUbkY0 >>806
あります
あります
808デフォルトの名無しさん (ワッチョイ 03bd-MgCS [133.209.119.164])
2023/04/29(土) 05:52:34.96ID:q0/EY4lO0 >>807
ちょっと面白そうだったので作ってみたけど、あんまりいい出来にはならなかった。
わざわざ見せるようなものじゃないんだけど、一応貼っとく。
アプローチとしては、単品アイテムまたは別名で括られた同一アイテム毎に配列実体を持たせて、重複排除しながらその実体に放り込んで最後に文字列化する。
複数の別名定義で 2つ以上の名前を括ったり、名前の登場順で連結するようにした。
https://i.imgur.com/tY8Yg78.gif
ちょっと面白そうだったので作ってみたけど、あんまりいい出来にはならなかった。
わざわざ見せるようなものじゃないんだけど、一応貼っとく。
アプローチとしては、単品アイテムまたは別名で括られた同一アイテム毎に配列実体を持たせて、重複排除しながらその実体に放り込んで最後に文字列化する。
複数の別名定義で 2つ以上の名前を括ったり、名前の登場順で連結するようにした。
https://i.imgur.com/tY8Yg78.gif
809デフォルトの名無しさん (ワッチョイ 1bbd-MgCS [119.240.43.251])
2023/04/29(土) 06:04:20.63ID:ZqMIj65v0 あわわ、26-32行目は整理できた
const new-content = [];
alias_ref[item] = alias_content.length;
const new-content = [];
alias_ref[item] = alias_content.length;
810デフォルトの名無しさん (ワッチョイ e38b-fitb [211.5.157.105])
2023/04/29(土) 20:12:37.30ID:wJzxOo1h0 JavaScriptでタイマー処理をしています。
指定した秒数(ここでは10秒)経過したらタイマーを停止する様にしていますが
タイマーが止まりません。助けてください、、、
$(document).ready(function(){
$("#id_div_test").click(function () {
setInterval(TestFunction , 1000);
});
});
var i_current_second = -1;
function TestFunction()
{
i_current_second++;
if( i_current_second == 10)
{
clearInterval(TestFunction);
}
}
指定した秒数(ここでは10秒)経過したらタイマーを停止する様にしていますが
タイマーが止まりません。助けてください、、、
$(document).ready(function(){
$("#id_div_test").click(function () {
setInterval(TestFunction , 1000);
});
});
var i_current_second = -1;
function TestFunction()
{
i_current_second++;
if( i_current_second == 10)
{
clearInterval(TestFunction);
}
}
811502 (ワッチョイ d501-nY3o [36.240.121.112])
2023/04/29(土) 20:34:34.21ID:ulzy/WI80812デフォルトの名無しさん (ブーイモ MM49-3F9Y [202.214.125.164])
2023/04/29(土) 20:36:30.58ID:WiY5v75xM clearIntervalの引数に入れるのはsetIntervalから帰ってくるnumber
型エラーでハマるのアホらしいしts使うか無理なら//@ts-checkをファイルの先頭に書いとけ
型エラーでハマるのアホらしいしts使うか無理なら//@ts-checkをファイルの先頭に書いとけ
813デフォルトの名無しさん (ワッチョイ e38b-fitb [211.5.157.105])
2023/04/29(土) 20:54:08.29ID:wJzxOo1h0 >>812
わかりません。。。どう書けば良いでしょうか?
わかりません。。。どう書けば良いでしょうか?
814デフォルトの名無しさん (ワッチョイ e38b-fitb [211.5.157.105])
2023/04/30(日) 00:03:19.23ID:x92s4/Ng0 >>812
できました!
できました!
815デフォルトの名無しさん (ワッチョイ 5b7c-01SL [122.212.18.110])
2023/05/07(日) 14:48:48.64ID:NS1NVPz40 >>810
こういうのはそのまんまChatGPTに聞けばヒントなり、回答、修正案なんかも返してくれ
る。
----
この問題は、`clearInterval`に渡す引数が誤っているために発生しています。`setInterval`に渡したのは `TestFunction`関数ですが、`clearInterval`に渡すのは `setInterval`が返すタイマーIDです。このタイマーIDは `setInterval`を呼び出すと返されます。
以下は修正されたコード例です。
$(document).ready(function(){
$("#id_div_test").click(function () {
var timerId = setInterval(TestFunction , 1000);
// タイマーIDを保持するために変数に代入する
});
});
var i_current_second = -1;
function TestFunction()
{
i_current_second++;
if( i_current_second == 10)
{
clearInterval(timerId); // 正しいタイマーIDを渡す
}
}
ここでは、`timerId`変数を`setInterval`の戻り値として宣言し、`clearInterval`に渡すようにしました。これにより、タイマーが正常に停止するはずです。
こういうのはそのまんまChatGPTに聞けばヒントなり、回答、修正案なんかも返してくれ
る。
----
この問題は、`clearInterval`に渡す引数が誤っているために発生しています。`setInterval`に渡したのは `TestFunction`関数ですが、`clearInterval`に渡すのは `setInterval`が返すタイマーIDです。このタイマーIDは `setInterval`を呼び出すと返されます。
以下は修正されたコード例です。
$(document).ready(function(){
$("#id_div_test").click(function () {
var timerId = setInterval(TestFunction , 1000);
// タイマーIDを保持するために変数に代入する
});
});
var i_current_second = -1;
function TestFunction()
{
i_current_second++;
if( i_current_second == 10)
{
clearInterval(timerId); // 正しいタイマーIDを渡す
}
}
ここでは、`timerId`変数を`setInterval`の戻り値として宣言し、`clearInterval`に渡すようにしました。これにより、タイマーが正常に停止するはずです。
816デフォルトの名無しさん (オイコラミネオ MMc7-3VlF [150.66.117.153])
2023/05/08(月) 05:12:47.92ID:AmPaXWnYM >>815
ここいらんやんけ…
ここいらんやんけ…
817デフォルトの名無しさん (ワッチョイ 52bd-F1Es [133.209.119.64])
2023/05/08(月) 09:31:16.79ID:nWGvwrRY0 >>815
setIntetval してるスコープの timerId を clearInterval するスコープから参照できる?
setIntetval してるスコープの timerId を clearInterval するスコープから参照できる?
818デフォルトの名無しさん (ワッチョイ 5b7c-01SL [122.212.18.110])
2023/05/08(月) 19:39:25.41ID:0kSPeCjv0 エラーが出たらまた聞けば直してくれる
あとほ聞き方の問題だね
あとほ聞き方の問題だね
819デフォルトの名無しさん (ワッチョイ 028b-KeI6 [211.5.157.105])
2023/05/08(月) 22:29:23.94ID:BI0XZhvO0820デフォルトの名無しさん (オイコラミネオ MMc7-3VlF [150.66.117.113])
2023/05/08(月) 23:30:02.71ID:ieW4qdsxM 条件によってスクリプトを途中で止めさせたいんだけど三項演算子じゃreturnするしないを分けるのは無理?
if exitFlag return false
if exitFlag return false
821デフォルトの名無しさん (ワッチョイ e2bd-F1Es [221.171.102.45])
2023/05/08(月) 23:46:59.68ID:PuDhFqQc0 >>820
多分無理だと思うけど、なんで if じゃいけないの?
多分無理だと思うけど、なんで if じゃいけないの?
822デフォルトの名無しさん (オイコラミネオ MMc7-3VlF [150.66.117.113])
2023/05/08(月) 23:51:00.55ID:ieW4qdsxM >>821
三項演算子の中で使ってるからなんか気持ち悪い
三項演算子の中で使ってるからなんか気持ち悪い
823デフォルトの名無しさん (ワッチョイ e25c-KeI6 [203.139.52.200])
2023/05/09(火) 00:52:34.88ID:eLWpr74i0 f = (flag) => flag ? false : true;
console.log(f(true));
console.log(f(false));
console.log(f(true));
console.log(f(false));
824デフォルトの名無しさん (スッップ Sd42-01SL [49.98.137.246])
2023/05/09(火) 00:52:45.73ID:RQydgiqHd >>819
ChatGPTをプログラム用途で使ったこと無いなら一度つかってみると良いよ。
ググる手間がかなり少なくなる
もちろん、間違い返答の可能性もあるからそこら辺はうまく扱う必要があるけどね。
あとGitHub Copilotはもっとヤバいよ。プログラマーなら一度は使うべき
ChatGPTをプログラム用途で使ったこと無いなら一度つかってみると良いよ。
ググる手間がかなり少なくなる
もちろん、間違い返答の可能性もあるからそこら辺はうまく扱う必要があるけどね。
あとGitHub Copilotはもっとヤバいよ。プログラマーなら一度は使うべき
825デフォルトの名無しさん (ワッチョイ e2bd-F1Es [221.171.102.45])
2023/05/09(火) 01:40:34.46ID:r9kkpYgp0 OSS のソース読むときにも ChatGPT は便利だよ。
内部関数名とか聞いても何するものか教えてくれる。
この間 OpenSSL のソース読んでて助けられた。
暗号のコードなんて読んでもよくわからないしw
内部関数名とか聞いても何するものか教えてくれる。
この間 OpenSSL のソース読んでて助けられた。
暗号のコードなんて読んでもよくわからないしw
826デフォルトの名無しさん (ワッチョイ 028b-KeI6 [211.5.157.105])
2023/05/09(火) 07:51:33.95ID:y5YEea020827デフォルトの名無しさん (ワッチョイ 028b-KeI6 [211.5.157.105])
2023/05/09(火) 10:14:34.85ID:y5YEea020 ChatGPTでsqlでハマった点を質問してみたんだけど
ヤバイな。一瞬で分かり易く解説してくれた。
どんなプログラムを組んでるんだ。凄すぎる。
ヤバイな。一瞬で分かり易く解説してくれた。
どんなプログラムを組んでるんだ。凄すぎる。
828デフォルトの名無しさん (ワッチョイ 028b-KeI6 [211.5.157.105])
2023/05/09(火) 14:59:12.62ID:y5YEea020 chatGPTえぐいんですけど。
829デフォルトの名無しさん (ワッチョイ ef1f-ZkZz [39.110.0.110])
2023/05/18(木) 17:50:03.04ID:An6NATd90 javascriptでctrl+Wでブラウザタブが落ちるのを無効にする方法はありますか?
830デフォルトの名無しさん (JP 0Heb-owa4 [126.249.157.89])
2023/05/23(火) 06:51:40.61ID:tIBpGAYNH それはJSの設定?Winの設定?
831デフォルトの名無しさん (アウアウウー Sab7-tdi0 [106.130.126.201])
2023/05/23(火) 20:39:57.19ID:85f2/18wa 最近勉強してvarの何でもありな傍若無人さに気が付いた
例えば関数実行後に初期化してもホイスティングで勝手にundefiedが代入されるからエラーにならず混乱の素、
ブロックスコープ内で使うとその生成を無視するから混乱の素
なのでプロなのにES6以降の環境で未だにvar使ってる人って新人にも劣ると思った
ES6以降でEcmaから非推奨と言われてるのに未だにvar使わなければいけない理由ってある?
今後var使ってる人見たら問答無用で勉強しない人と判断しても良い?
例えば関数実行後に初期化してもホイスティングで勝手にundefiedが代入されるからエラーにならず混乱の素、
ブロックスコープ内で使うとその生成を無視するから混乱の素
なのでプロなのにES6以降の環境で未だにvar使ってる人って新人にも劣ると思った
ES6以降でEcmaから非推奨と言われてるのに未だにvar使わなければいけない理由ってある?
今後var使ってる人見たら問答無用で勉強しない人と判断しても良い?
832デフォルトの名無しさん (ワッチョイ fa5c-FIIW [203.139.52.200])
2023/05/23(火) 20:57:14.94ID:PscArQu/0 キモ
833デフォルトの名無しさん (ブーイモ MM16-F7IQ [133.159.150.75])
2023/05/23(火) 22:34:28.22ID:y7+F4Fx6M >>831
>例えば関数実行後に初期化してもホイスティングで勝手にundefiedが代入される
これいろいろ間違ってる
>未だにvar使わなければいけない理由ってある?
REPLで繰り返しコードブロックを実行したい場合なんかにvar使う
あとはブラウザ以外の環境でES3しか動かない環境とかね
>今後var使ってる人見たら問答無用で勉強しない人と判断しても良い?
良いと思うけど君もそっち側に片足突っ込んでるから気をつけて
>例えば関数実行後に初期化してもホイスティングで勝手にundefiedが代入される
これいろいろ間違ってる
>未だにvar使わなければいけない理由ってある?
REPLで繰り返しコードブロックを実行したい場合なんかにvar使う
あとはブラウザ以外の環境でES3しか動かない環境とかね
>今後var使ってる人見たら問答無用で勉強しない人と判断しても良い?
良いと思うけど君もそっち側に片足突っ込んでるから気をつけて
834デフォルトの名無しさん (ワッチョイ 9af0-FIIW [211.19.68.36])
2023/05/24(水) 10:07:05.19ID:qaFXRxUx0 スコープの基本だね
レキシカルなのかパラメーターなのか
DOMをいじるとみんな参照になるし変数大切ね
レキシカルなのかパラメーターなのか
DOMをいじるとみんな参照になるし変数大切ね
835デフォルトの名無しさん (ワッチョイ 23a7-xpLh [118.14.167.59])
2023/05/24(水) 10:45:52.94ID:R9+x876F0 匿名イベントを削除する方法って無い?
ググりまくっても全く見当たらんから仕方ないのでElement.prototype.addEventListenerフックしてフィルタしてるんだけど非常に遠回りな事してる気がしてならない
ググりまくっても全く見当たらんから仕方ないのでElement.prototype.addEventListenerフックしてフィルタしてるんだけど非常に遠回りな事してる気がしてならない
836デフォルトの名無しさん (ブーイモ MM86-F7IQ [163.49.208.121])
2023/05/24(水) 11:04:01.62ID:CrZEaXEyM >>835
イベントリスナーへの参照を保持してないと
removeEventListenerは使えない
あとはAbortSignalを使う方法がある
MDNのaddEventListener辺りに全部書いてる
イベントリスナーへの参照を保持してないと
removeEventListenerは使えない
あとはAbortSignalを使う方法がある
MDNのaddEventListener辺りに全部書いてる
837デフォルトの名無しさん (ワッチョイ 2b5f-i/qU [14.12.8.65])
2023/05/25(木) 06:53:07.70ID:djzVD0JU0 くそ素人で申し訳ない
ブックマークレットでCookieを編集する時に有効期限も同時に編集したいのだけれど
どうしたらいいのだろうか
元々は
javascript:document.cookie=%22ipb_member_id=〇〇%22;document.cookie=%22ipb_pass_hash=〇〇%22;
って感じなのだけれど1日くらいしたらすぐ消えてしまう
ブックマークレットでCookieを編集する時に有効期限も同時に編集したいのだけれど
どうしたらいいのだろうか
元々は
javascript:document.cookie=%22ipb_member_id=〇〇%22;document.cookie=%22ipb_pass_hash=〇〇%22;
って感じなのだけれど1日くらいしたらすぐ消えてしまう
838デフォルトの名無しさん (スップ Sd5a-9ehv [49.96.239.55])
2023/05/25(木) 11:10:49.64ID:vvIauVZOd どっかのRFCに載ってるはず
839デフォルトの名無しさん (ササクッテロラ Sp8b-tLvz [126.182.17.102])
2023/05/27(土) 14:04:26.57ID:MkhutBump >>837
そいつは有効期限も一緒に設定しなきゃならんな。
javascript:(function(){
var date = new Date();
date.setDate(date.getDate() + 30); // 30日後に設定
document.cookie = "ipb_member_id=〇〇; expires=" + date.toUTCString() + "; path=/";
document.cookie = "ipb_pass_hash=〇〇; expires=" + date.toUTCString() + "; path=/";
})();
こんな感じでやってみ。
これでipb_member_idとipb_pass_hashが
30日間有効になるぜ。
ただし、ブラウザの設定やCookieの設定によってはJavaScriptから触れないこともあるから、
その辺は自己責任でな。
そいつは有効期限も一緒に設定しなきゃならんな。
javascript:(function(){
var date = new Date();
date.setDate(date.getDate() + 30); // 30日後に設定
document.cookie = "ipb_member_id=〇〇; expires=" + date.toUTCString() + "; path=/";
document.cookie = "ipb_pass_hash=〇〇; expires=" + date.toUTCString() + "; path=/";
})();
こんな感じでやってみ。
これでipb_member_idとipb_pass_hashが
30日間有効になるぜ。
ただし、ブラウザの設定やCookieの設定によってはJavaScriptから触れないこともあるから、
その辺は自己責任でな。
840デフォルトの名無しさん (ワッチョイ 375f-mp2X [106.72.33.97])
2023/05/28(日) 15:24:03.43ID:n14WZ+eY0 documentのinnerHTMLやtextContentの書き換えをしたとき、ブラウザのDOMの計算(?)や再描画(?)は変更があった部分のみか、ページ全体で行われるののどちらでしょうか?
841デフォルトの名無しさん (ワッチョイ 975f-D91p [14.12.8.65])
2023/05/28(日) 23:28:10.35ID:8mVMxOyu0 >>839
ありがとうまじ助かった
ありがとうまじ助かった
842デフォルトの名無しさん (ワッチョイ 975f-f/x0 [14.8.104.32])
2023/05/29(月) 06:35:55.98ID:eVNfBOW80 CookieってPHPみたいなサーバーサイドから設定するのとJSから設定するのどっちが良いんかね?
同僚から受け継いだシステムはPHPでやってたが
同僚から受け継いだシステムはPHPでやってたが
843デフォルトの名無しさん (ワッチョイ 9f00-taKI [221.118.182.138 [上級国民]])
2023/05/29(月) 07:03:02.74ID:nuFuFtG60 HttpOnlyの存在考えるとサーバーサイド一択じゃね?
844デフォルトの名無しさん (ワッチョイ ffbb-dfVX [217.178.27.244])
2023/05/29(月) 08:05:53.64ID:7kZHwtIo0 ステートレスな通信を補助するものだから、処理の起点側でつけると良い
ただ、一般的にはサーバサイドになると思うよ
ただ、一般的にはサーバサイドになると思うよ
845デフォルトの名無しさん (ワッチョイ 5f4b-HhYS [110.2.215.28 [上級国民]])
2023/06/19(月) 13:57:37.11ID:iYcFBKEZ0 if ((a == b && c != d) || (e == f && g != h)){
alert ("正解");
}
こういうコードの書き方は出来ますか?
二重括弧の使い方は正しいでしょうか?
alert ("正解");
}
こういうコードの書き方は出来ますか?
二重括弧の使い方は正しいでしょうか?
846デフォルトの名無しさん (ワッチョイ 5f4b-HhYS [110.2.215.28 [上級国民]])
2023/06/19(月) 14:42:31.77ID:iYcFBKEZ0 ちょっと調べてたんですが、こうでしょうか?
if (((a == b) && (c != d)) || ((e == f) && (g != h))){
alert ("正解");
}
「a == bとc != dの条件が両方ともtrue」か「e == fとg != hの条件が両方ともtrue」なら"正解"と警告を表示したいのですが…
三重括弧なんてあります?
if (((a == b) && (c != d)) || ((e == f) && (g != h))){
alert ("正解");
}
「a == bとc != dの条件が両方ともtrue」か「e == fとg != hの条件が両方ともtrue」なら"正解"と警告を表示したいのですが…
三重括弧なんてあります?
847デフォルトの名無しさん (ワッチョイ ff7b-0fSR [153.185.178.93])
2023/06/19(月) 14:49:42.42ID:G503Uwj70 >>845で大丈夫やろ。
なんで試さんの?
なんで試さんの?
848デフォルトの名無しさん (ワッチョイ ff61-gPkm [153.171.212.140])
2023/06/19(月) 14:54:44.66ID:Glrukv1f0 演算子優先度の理解が追い付いて無いなら好きなだけ括弧使えばいい
849デフォルトの名無しさん (オッペケ Sr33-vDmN [126.157.241.160])
2023/06/19(月) 14:58:41.52ID:3rS08iXar 何重カッコでもいけるけど演算子やカッコが増えると可読性が落ちて条件式を読み解くのが辛くなる
コードは長くなっても条件式をいくつかに分割して変数に入れた方が読みやすくなるよ
const x = (a == b) && (c != d)
const y = (e == f) && (g != h)
if(x || y){
alert ("正解");
}
とか
コードは長くなっても条件式をいくつかに分割して変数に入れた方が読みやすくなるよ
const x = (a == b) && (c != d)
const y = (e == f) && (g != h)
if(x || y){
alert ("正解");
}
とか
850デフォルトの名無しさん (ワッチョイ 5f4b-HhYS [110.2.215.28 [上級国民]])
2023/06/19(月) 15:02:17.21ID:iYcFBKEZ0 皆さん、ありがとうございます
変数に入れるのがいいですね
やってみます
変数に入れるのがいいですね
やってみます
851デフォルトの名無しさん (アウアウウー Sa23-QBJ2 [106.130.41.210])
2023/06/19(月) 23:22:27.82ID:xNSaH23va イテレータ、Map、Setがややこしくて😩なんだけど実務で使う?
一応理解したけどカスタムイテレータ作ってそれをオブジェクトに追加してfor...ofなんて無理だな
プログラマーならバリバリ使うのかな?それとも知識として仕組み知っとくだけ?
一応理解したけどカスタムイテレータ作ってそれをオブジェクトに追加してfor...ofなんて無理だな
プログラマーならバリバリ使うのかな?それとも知識として仕組み知っとくだけ?
852デフォルトの名無しさん (オッペケ Sr33-vDmN [126.205.219.139])
2023/06/20(火) 13:18:59.52ID:es0ShzRur Mapはキーと値の組み合わせのコレクション
Setは重複のない値のコレクション
どちらも実務で出番はある
イテレータは中身を1個ずつ取り出せるものの総称
カスタムイテレータに関してはmdnもおすすめのジェネレータ関数を覚えておけばいいかと
バリバリではないにしてもここぞというときに役に立つ
Setは重複のない値のコレクション
どちらも実務で出番はある
イテレータは中身を1個ずつ取り出せるものの総称
カスタムイテレータに関してはmdnもおすすめのジェネレータ関数を覚えておけばいいかと
バリバリではないにしてもここぞというときに役に立つ
853デフォルトの名無しさん (ワッチョイ ffda-ZcId [223.216.178.53])
2023/06/21(水) 18:20:14.61ID:He5qrAkL0 tableタグのtrをjqueryかjavascriptでアニメーションアコーディオンがうまくアニメーションしないんだけど
slideToggleで開発ツールではheightの数字は変化しているんだけど・・
もしかしてtrにheightという概念が無いから?
<tr class=name><td>名前1</td></tr>
<tr class=detail><td>中身1</td></tr>
<tr class=name><td>名前2</td></tr>
<tr class=detail><td>中身2</td></tr>
・・・
slideToggleで開発ツールではheightの数字は変化しているんだけど・・
もしかしてtrにheightという概念が無いから?
<tr class=name><td>名前1</td></tr>
<tr class=detail><td>中身1</td></tr>
<tr class=name><td>名前2</td></tr>
<tr class=detail><td>中身2</td></tr>
・・・
854デフォルトの名無しさん (ワッチョイ 7d4b-Hjce [110.2.215.28 [上級国民]])
2023/06/26(月) 12:08:05.73ID:QXVTwCFE0 変数って定義する前はundefinedが入ってるんでしょうか?
855デフォルトの名無しさん (ワッチョイ 1501-WolJ [60.109.218.97])
2023/06/26(月) 20:02:32.96ID:nZR6QJ/D0856デフォルトの名無しさん (ワッチョイ 7d4b-Hjce [110.2.215.28 [上級国民]])
2023/06/26(月) 21:13:06.03ID:QXVTwCFE0 >>855
ありがとうございます。
ありがとうございます。
857デフォルトの名無しさん (アウアウウー Sab9-cUyJ [106.130.49.224])
2023/06/29(木) 21:35:42.23ID:I06beN9ya Promiseメソッドなんなの独自ルール多すぎでしょ。もはや別言語に感じる。これよく使用される?
858デフォルトの名無しさん (ワッチョイ 1a00-KjOb [221.118.182.138 [上級国民]])
2023/06/29(木) 22:34:31.96ID:mZg1DRHQ0 Promise周りは最初は取っつきにくいけど、凄く使いやすく作られてるし、物凄くよく使うよ。
859デフォルトの名無しさん (ワッチョイ 1d5f-momQ [14.8.104.32])
2023/06/29(木) 23:09:38.14ID:OBXN/r9b0 async awaitでしかfetchをかけない自分と、thenでしかfetchを書けない前任者のせめぎあい
xhrはなぜか知らんがもう時代じゃないらしいし
xhrはなぜか知らんがもう時代じゃないらしいし
860デフォルトの名無しさん (アウアウウー Sab9-Br7/ [106.128.36.203])
2023/06/30(金) 10:14:20.96ID:Lj29KtNna 的外れな質問だったら申し訳ありません…
クラスAが長くなってしまったこと(1500行くらい)、類似クラスBとある程度共通化できそうな部分があったので関数Cとして
別ファイルに切りだそうと思いました。
その際、関数CからAの複数のメンバ変数/メソッド(Bも同じ名前の変数/メソッドを持っている)を利用したいのですが、
一つ一つ引数で渡していくと記述が煩雑だし、仕様も変わる可能性があります。
そこで、Aのインスタンスから関数Cにthisを引数として渡すようにして、関数Cからは仮引数this.メンバ変数 などのようにして自由にAのメンバにアクセスできるようにしました。
以上のやり方で、動作はしているようですが、なんか良くないやり方の様な気もしています。
上記のやり方は一般的な方法でしょうか。何かデメリットはありますでしょうか。
クラスAが長くなってしまったこと(1500行くらい)、類似クラスBとある程度共通化できそうな部分があったので関数Cとして
別ファイルに切りだそうと思いました。
その際、関数CからAの複数のメンバ変数/メソッド(Bも同じ名前の変数/メソッドを持っている)を利用したいのですが、
一つ一つ引数で渡していくと記述が煩雑だし、仕様も変わる可能性があります。
そこで、Aのインスタンスから関数Cにthisを引数として渡すようにして、関数Cからは仮引数this.メンバ変数 などのようにして自由にAのメンバにアクセスできるようにしました。
以上のやり方で、動作はしているようですが、なんか良くないやり方の様な気もしています。
上記のやり方は一般的な方法でしょうか。何かデメリットはありますでしょうか。
861デフォルトの名無しさん (ワッチョイ 7691-pVx5 [153.223.3.108])
2023/06/30(金) 10:55:58.80ID:qu6f9mWQ0 クラスAたBの同名の変数と関数をBaseクラスにしてAとBに継承すれば同名の変数関数を持ってることが保証できてうっかり名前変えてしまったとかのバグ防げるんじゃない?インターフェースみたいに
それから引数じゃなくてbind使えば関数C内でthisを自然な感じで使えるとか
それから引数じゃなくてbind使えば関数C内でthisを自然な感じで使えるとか
862デフォルトの名無しさん (アウアウウー Sab9-Br7/ [106.128.39.112])
2023/06/30(金) 13:05:23.88ID:2BLecjKja 有り難うございます。
デメリットとしては後でA~Cをいじった時にバグの温床になりやすいこと、くらいの認識で良いんですかね。
基底クラスを継承するかたちにすることも考えたいと思います。
確かにbind/callを使った方が、動作は同じでよりシンプルな気がしてきました。
デメリットとしては後でA~Cをいじった時にバグの温床になりやすいこと、くらいの認識で良いんですかね。
基底クラスを継承するかたちにすることも考えたいと思います。
確かにbind/callを使った方が、動作は同じでよりシンプルな気がしてきました。
863デフォルトの名無しさん (アウアウウー Sa47-NFBa [106.146.70.58])
2023/07/01(土) 04:46:01.59ID:nMEzWNF9a is_a, has_a
継承か包含か、古典的な質問
継承か包含か、古典的な質問
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★2 [ぐれ★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★4 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【卓球】早田ひな、「総額100万スられた」「ずっと憧れていたスペインとイタリア…」ヨーロッパ旅行で悲劇 スリ被害を告白 [muffin★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【実況】博衣こよりのえちえち歌枠🧪★2
- 産経新聞「高市早苗の答弁さぁ……思慮が足りてなくね?官僚と詰めずに思いつきで話しているでしょ」 [175344491]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 【雑談】暇人集会所part18
- 【画像】外務省局長「この度はうちの🦎がすみません…」中国「……」 [165981677]
- 外務省局長、よくわからないまま帰国へ [834922174]
