[過去ログ] + JavaScript の質問用スレッド vol.123 + [無断転載禁止]©2ch.net (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
983: (ワッチョイ 9e46-BvZE [111.98.111.65]) 2021/10/31(日)22:09 ID:CEq1n28F0(7/7) AAS
>>981
982の「疑問」=>「疑問や違和感」に訂正です
984: (ワッチョイ 56db-BvZE [217.178.96.78]) 2021/11/01(月)09:39 ID:i0IYe4C60(1/2) AAS
アロ関は世界を救う。
985: (ワッチョイ 56db-BvZE [217.178.96.78]) 2021/11/01(月)09:56 ID:i0IYe4C60(2/2) AAS
アロ関十段ここに極まる。
986: (ワッチョイ 52f0-rbIv [61.205.223.183]) 2021/11/01(月)10:30 ID:Oy+9EmbD0(1) AAS
>>980
アロー関数にプロパティを紐づけする必要ないよな
無名関数、即時関数のプロパティに外部からアクセスするようなコードはナンセンスだし

>>981
Chromeのコンソールでコード入力してんのかな?
そんなことしてたら面倒くさいだろな
vscodeでjavascriptを実行すればいいんだけど
支障がるみたいで、どういう感じになってるのか興味ある
987
(1): (ワッチョイ 9e46-BvZE [111.98.111.65]) 2021/11/03(水)17:47 ID:mbwPounm0(1) AAS
.>>1000
そうだな、お前みたいな破廉恥極まりないやつを極刑にできないなんてな
988: (ワッチョイ 8701-rKqH [126.224.146.69]) 2021/11/03(水)17:55 ID:KPYiFv2L0(1) AAS
>>987
先(>1000)をみる前に現在を見つめては
989
(2): (ワッチョイ 7ff0-+Epa [61.205.223.183]) 2021/11/09(火)17:29 ID:vBEqEZ0H0(1) AAS
よろしくお願いします

下記の二つの関数、c1()とc2()でカウンターを作りました
c1()はカウントされず、c2()はカウントされます
同じようなコードなのにc1()を複数回呼び出しても
変数cがインクリメントされないのはなぜなのでしょうか?

function c1(){
let c=0;
return c++;
}

function c2(){
省11
990
(1): (テテンテンテン MM4f-hQZx [133.106.48.148]) 2021/11/09(火)18:14 ID:M98uPrZkM(1) AAS
仕様通りとしか
c1のcはc1が呼び出される度に定義されるからカウント不可
そもそも上のコードでc1は1回しか呼び出されていないし
991: (ワッチョイ ff02-H2rd [119.106.222.232]) 2021/11/09(火)18:42 ID:/KO0GJnF0(1) AAS
c2の中のfunctionの中で書いてないけどcが定義されて、呼び出されるごとにそのcがインクリメントされているような挙動。
992: (ワッチョイ 5f01-lK5T [126.243.174.47]) 2021/11/09(火)20:03 ID:zgMlwp7I0(1) AAS
>>989
c1は呼び出される度に変数cが初期化される
s2は呼び出されても変数cが初期化されない
993: (ワッチョイ df4e-9n+R [210.138.216.243]) 2021/11/09(火)20:54 ID:qOqV7S2Y0(1) AAS
そもそもc1一回しか呼び出してないけどな
994: (ブーイモ MMa3-8Kye [202.214.125.68]) 2021/11/09(火)21:10 ID:JS6FzrkbM(1) AAS
カウンタを初期化する部分を繰り返し呼び出す関数の外に出してやればいい

let c=0;
function c1(){
return c++;
}
995: (ワッチョイ ff46-H2rd [111.98.111.65]) 2021/11/09(火)22:41 ID:RTTrqb1f0(1) AAS
>>990はレキシカルを理解してるなら
s1とs2のレキシカルが違うことをだな
996: (ワッチョイ 5f21-+Epa [222.230.61.102]) 2021/11/10(水)12:09 ID:KxrU4/8D0(1/3) AAS
うむ
997: (ワッチョイ 5f21-+Epa [222.230.61.102]) 2021/11/10(水)12:24 ID:KxrU4/8D0(2/3) AAS
>>989
関数やブロックはプロパティをLexicalという場所に登録するんだけど
プロパティを参照した時には、関数内やブロック内のLexicalを参照し
そこにプロパティが登録されてないとその直外のLexicalを参照します

関数は、呼び出しごとに内部Lexicalが生成されるので
c1();c1();c1()と呼び出すと、別々の3つの内部Lexicalが生成され
それらに別々のlet cが登録されるので、c=0となります

s1にはc1()への関数の参照が格納されてるので
s1を複数回呼び出すと、c1()を複数回参照し
上記と同じ結果になります
省4
998: (ワッチョイ df4e-9n+R [210.138.216.243]) 2021/11/10(水)13:11 ID:ABhSQgxq0(1) AAS
ところでクロージャーって用語の使い方について質問があるんだけどc2自体をクロージャーって言うのかc2が返してる無名関数をクロージャーって言うのかどっちが正しいの?
999
(1): (ワッチョイ 7f52-hQZx [61.87.108.223]) 2021/11/10(水)15:30 ID:jxD2VXPG0(1) AAS
質問中すまんが次スレ
+ JavaScript の質問用スレッド vol.124 +
2chスレ:tech
1000
(2): (ワッチョイ 5f21-+Epa [222.230.61.102]) 2021/11/10(水)17:31 ID:KxrU4/8D0(3/3) AAS
closer != function
closer == function + environment.information

JSで説明されてるクロージャーは
関数、関数の内部情報、外部参照ポインタのセット
っていう大まかな理解でいいと思います

function f(){let a;}の場合、
関数f、内部プロパティa、外部参照ポインタの参照先(グローバル)、というセットがクロージャー
ちょっと大まかすぎますか?

返される無名関数はクロージャーの仕組みを
コードで理解するために多用されているために
省8
1001
(1): 1001 ID:Thread(1/2) AAS
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 1682日 18時間 0分 27秒
1002
(1): 1002 ID:Thread(2/2) AAS
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。

───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
省4
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.101s