[過去ログ] + JavaScript の質問用スレッド vol.124 + (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
17: (ワッチョイ 7ff0-+Epa [61.205.223.183]) 2021/11/11(木)16:26 ID:YbaQuGpg0(2/2) AAS
9の長い長い説明はまったくもって的外れ?
18: (ワッチョイ ff46-H2rd [111.98.111.65]) 2021/11/11(木)18:44 ID:a2zl13Hx0(1/4) AAS
ふーん、なるほどねぇ
19: (ワッチョイ ff46-H2rd [111.98.111.65]) 2021/11/11(木)19:03 ID:a2zl13Hx0(2/4) AAS
||クロージャーは、組み合わされた(囲まれた)関数と、
||その周囲の状態(レキシカル環境)への参照の組み合わせです。
||言い換えれば、クロージャは内側の関数から外側の関数スコープへのアクセスを提供します。
||(MDN)
「関数の内から関数の外を参照できる、参照権限(参照できる状態(仕組み))」ということだろ!!!
これできめ!
20(1): (ワッチョイ 5f01-lK5T [126.242.217.11]) 2021/11/11(木)19:41 ID:CFwD9UgS0(1/2) AAS
クロージャは関数閉包のこと
関数の中に関数が内包された状態を指す
外側の関数をエンクロージャと呼ぶが、クロージャ=関数ではない
21(1): (ワッチョイ ff2d-+Epa [121.102.71.88]) 2021/11/11(木)20:24 ID:eeb4OqXn0(1) AAS
現在のスコープに変数が見つからなければ、どんどん外のスコープに変数を探しに行って
最終的にwindowまで探しに行ってくれる機能のことをクロージャと呼ぶ
かな?
22: (ワッチョイ 5f01-lK5T [126.242.217.11]) 2021/11/11(木)20:29 ID:CFwD9UgS0(2/2) AAS
>>21
違う
それはスコープチェーン
23: (ワッチョイ ffb0-QVGU [153.219.213.62]) 2021/11/11(木)21:31 ID:P2a3zHOn0(1) AAS
Promiseの状態(pending/fullfilled/rejected)って外から取得できないんだっけ?
探しても方法が見つからな。
24(1): (ブーイモ MM4f-8Kye [133.159.152.241]) 2021/11/11(木)22:17 ID:9vb0JKHxM(1) AAS
MDNの訳が微妙すぎると思ったら原文も同じだった
A closure is the combination of a function with references to its surrounding state.
か
A closure is a function bundled together with references to its surrounding state.
のどっちかにしたかったんだろう
25(1): (ワッチョイ ff46-H2rd [111.98.111.65]) 2021/11/11(木)22:18 ID:a2zl13Hx0(3/4) AAS
>>20
それは違う言語でしょ
JSはグローバルも一つの環境としてるから
グローバル内に宣言された関数も、囲まれた関数なんだよ
グローバルを関数と呼ぶのなら、それはそれかもなんだけど
26: (ワッチョイ ff46-H2rd [111.98.111.65]) 2021/11/11(木)22:22 ID:a2zl13Hx0(4/4) AAS
>>24
JSの設計のあいまいさを感じられるな
27: (ブーイモ MM4f-8Kye [133.159.150.0]) 2021/11/11(木)22:44 ID:/xlmv84EM(1) AAS
囲まれた関数ってのは微妙な原文と訳文で作られた言葉
ここの真ん中くらいにあるクロージャの定義を読むといい
外部リンク:javascript.info
28(1): (ワッチョイ 6e46-wd7R [111.98.111.65]) 2021/11/12(金)07:15 ID:JgN/83EX0(1/2) AAS
それを読んでも統一見解が得られづらいからこうなってるってわかる?
29: (ワッチョイ 6e46-wd7R [111.98.111.65]) 2021/11/12(金)07:25 ID:JgN/83EX0(2/2) AAS
でもまぁ一連のやり取りで
環境レコードや外部参照チェーンやスコープの復習ができたということで
この部分に関しては、脱素人になったわけだ、おめでとー
30(1): (ワッチョイ bd10-HV3m [180.12.82.129]) 2021/11/14(日)19:04 ID:y8V9oC250(1) AAS
canvasでcontext.lineWidth=1;にして直線を描いても幅が1にならなくて2ピクセル分の太さになってしまいます
どうすれば幅1の直線が描けますか?
31: (ワッチョイ 4d01-gBK2 [126.243.242.148]) 2021/11/14(日)19:57 ID:oSBO5A5Z0(1/4) AAS
>>25
言語仕様に言及するのなら、「ECMAScriptにクロージャは存在しない」が正解
> グローバル内に宣言された関数も、囲まれた関数なんだよ
そんな仕様はない
クロージャなんて概念は忘れて、変数、スコープ、関数の仕組みを覚える方が正しい理解に繋がる
32: (ワッチョイ f661-lRA9 [153.160.97.54]) 2021/11/14(日)20:00 ID:g8AzdeEc0(1) AAS
>>30
整数座標はピクセル中央ではなくピクセル左上になるので0.5足す
めんどくさかったらcontext.translate(.5, .5)するとか
33: (ワッチョイ 4d01-gBK2 [126.243.242.148]) 2021/11/14(日)20:54 ID:oSBO5A5Z0(2/4) AAS
>>28
クロージャで統一見解といえるのは「クロージャ=関数が入れ子になった状態」だけ
そこに機能的価値を見いだそうとするなら「クロージャという名の機能は存在しない」だ
機能的には別の機能で実装されていて、
関数を入れ子にした結果、それらの機能が便利な状況を作り出しているに過ぎない
学習目的なら「クロージャ」は忘れた方がいい
34(1): (ブーイモ MM8e-o9bf [133.159.149.178]) 2021/11/14(日)21:16 ID:Ec4oDlx8M(1) AAS
関数が入れ子かどうかなんて関係ないよ
理解してない人たち同士で"統一見解"を求めようとするからドツボに嵌ってる
35: (ワッチョイ 4d01-gBK2 [126.243.242.148]) 2021/11/14(日)21:27 ID:oSBO5A5Z0(3/4) AAS
>>34
仕様にない単語に、統一見解を求めるのが間違いなんだろうな
36: (ワッチョイ f6b0-WW/G [153.219.213.62]) 2021/11/14(日)21:47 ID:ybz8bu8o0(1) AAS
とはいえ「クロージャ=関数が入れ子になった状態」って定義は明らかに間違いだろう。
上下前次1-新書関写板覧索設栞歴
あと 966 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.010s