のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,645,558人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレ+ JavaScript の質問用スレッド vol.142 +

JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
101 : Name_Not - 2019/09/29(日) 18:40:51.74 ID:???.net (+36,-30,-58)
式と宣言があるfunctionと違いアロー関数は式のみで宣言はない。
巻き上げにfunction式とアロー関数式に違いはない。
注意すべきはthisのみで、巻き上げに云々は関係ない。(var f = function(){};もvar f = () => {};も同じ)
102 : Name_Not - 2019/09/29(日) 18:52:14.46 ID:???.net (-6,-29,-24)
argumentsにも要注意
103 : Name_Not - 2019/09/29(日) 19:00:02.27 ID:???.net (-2,-30,-31)
そうだったね。
this、arguments、それからコンストラクタとしての用法がないことからsuper、それにnew.targetだ。
104 : Name_Not - 2019/09/29(日) 19:48:24.05 ID:???.net (+62,+29,-5)
>>101
なんで宣言を省いてしまうのか
105 : Name_Not - 2019/09/29(日) 21:42:22.70 ID:???.net (+57,+29,-23)
そこは考え方や範囲の違いだから深く突っ込まなくていいよ
どうせ分かり会うことはないだろうから
106 : Name_Not - 2019/09/29(日) 22:13:33.79 ID:???.net (+61,+27,-19)
functionをアロー関数にするのだから当然宣言も含まれる
考え方以前の問題だろ
107 : Name_Not - 2019/09/29(日) 23:22:17.96 ID:???.net (+45,-30,-94)
アロー関数の趣旨は無名関数を簡単に書けるようにすること。
で、無名関数はfunctionでも式としてしか書けない(() => {}に対してfunction(){})
嘘だと思うなら>>106はfunction(){}を宣言文で書いてみろよw
function f(){}は有効な関数宣言だけど
function(){}はすぐGC対象になる関数式だぞw
108 : Name_Not - 2019/09/30(月) 00:04:58.40 ID:???.net (+91,+29,-6)
(駄目だこいつ質問の意図を理解してねぇ
109 : Name_Not - 2019/09/30(月) 01:47:15.30 ID:???.net (+70,+29,-21)
>>108
だから突っ込むなと言っただろ
こうなることは分かりきったことだから
お前こそ人の発言の意図を理解しろ
110 : Name_Not - 2019/09/30(月) 08:50:54.84 ID:???.net (+105,+29,-7)
>>107>>77と同タイプでマウント君
建設的な議論は望めない
111 : Name_Not - 2019/09/30(月) 08:55:59.41 ID:???.net (+72,+29,-34)
>>110

> ・他人の回答を批判する代わりに、自分ならこう書くという例を示してください
112 : Name_Not - 2019/09/30(月) 13:03:00.19 ID:???.net (+7,-30,-141)
ネストした関数内のthis は、グローバルを指してしまうから、よくバグルだろ

アロー関数の方が、this が、jQuery, Haxe みたいに正常に動くから、
this を一々、自分で、self, that に、代入しなくてもよいw

>>96
Linux なら、ps コマンドなどで、システムの状態を調べる

Windows のPowerShell にも、そういうコマンドがあるのでは?
113 : Name_Not - 2019/09/30(月) 13:24:03.62 ID:???.net (-1,-29,-20)
>>112
ブラウザからPowerShell起動して状態取得とかハッカーかよ
114 : Name_Not - 2019/09/30(月) 18:21:55.03 ID:???.net (-6,-29,-17)
prototypeって継承じゃね?
115 : Name_Not - 2019/09/30(月) 20:47:37.82 ID:???.net (+130,+29,-146)
プロトタイプ(__proto__)の仕組みは、自分が預かり知らないことを
全てプロトタイプ先に任すというものなので継承ではなく委譲
prototypeプロパティは委譲させられるものを定義する場所で
それをプロトタイプとしたオブジェクトを生み出すnew演算子の効果を持って
形として継承がさせているように見える
116 : Name_Not - 2019/09/30(月) 21:11:34.38 ID:???.net (+57,+29,-7)
継承でも委譲でもなく、参照が連鎖するだけ
117 : Name_Not - 2019/09/30(月) 21:45:08.07 ID:???.net (+70,+29,-12)
>>115
その継承と委譲の区別意味あるか?
118 : Name_Not - 2019/09/30(月) 22:38:25.40 ID:???.net (-1,-29,-50)
継承や委譲は考え方。
__proto__は実装方法。

C言語で例外を実装するときにgotoを使う
というのと同じように、__proto__を使って継承や委譲するだけに過ぎない
119 : Name_Not - 2019/09/30(月) 23:59:30.08 ID:???.net (-1,-29,-15)
昔は__proto__は仕様じゃなかったのになー
120 : Name_Not - 2019/10/01(火) 01:33:00.24 ID:???.net (+57,+29,-66)
> 全てプロトタイプ先に任すというものなので継承ではなく委譲

全くしっくり来ないわ
jQuery#proxyでも委譲云々を唱える奴がいたが、ただの宗教論にしか聞こえない
121 : Name_Not - 2019/10/01(火) 02:02:51.67 ID:???.net (+133,+29,-93)
なんでそこでjQuery#proxyがでてくるのかわからん

継承は親クラスから機能を受け継ぐもので
委譲は処理を別のものにさせるものってだけじゃないか

その実装がどうなってるかは関係ないし、
継承、委譲の考え方に、それらを実現するときに使う道具も関係ない
122 : Name_Not - 2019/10/01(火) 06:14:09.47 ID:???.net (+52,+29,-5)
簡単に考えれば分かることなのにね
123 : Name_Not - 2019/10/01(火) 08:34:06.08 ID:???.net (+70,+29,-29)
>>121
proxyは過去いってた奴がいただけで俺も賛同してない
124 : Name_Not - 2019/10/01(火) 09:51:13.25 ID:???.net (+57,+29,-17)
賛同するかしないかじゃなくて、
今の話に関係ない話だろってこと
125 : Name_Not - 2019/10/01(火) 12:02:55.17 ID:???.net (+80,+29,-88)
>>121
> 継承は親クラスから機能を受け継ぐもので

はいダウト。「親クラスから機能を受け継ぐ」というのはのはクラスベースオブジェクト指向固有の考え方。

> その実装がどうなってるかは関係ないし、

と自分で書いてるのに語るに落ちたなw
126 : Name_Not - 2019/10/01(火) 12:16:36.03 ID:???.net (+57,+29,-35)
通常のプロパティアクセスも出来るのに「委譲」になるわけがない
127 : Name_Not - 2019/10/01(火) 12:41:02.47 ID:???.net (+97,+30,-108)
> 「親クラスから機能を受け継ぐ」というのはのはクラスベースオブジェクト指向固有の考え方。

これが間違い。プロトタイプベースでも「親クラスから機能を受け継ぐ」ことは継承になる。
これは概念の話なので、言語としてクラスとして読んでいるかどうかは関係ない。
クラスに相当するものがあって、それを引き継ぐならどんな実装でも継承
128 : Name_Not - 2019/10/01(火) 12:44:09.15 ID:???.net (+75,+29,-24)
>>115
> 全てプロトタイプ先に任すというものなので継承ではなく委譲

全てを任せてないだろ
129 : Name_Not - 2019/10/01(火) 15:09:28.94 ID:???.net (+107,+30,-48)
>>127
「クラスに相当するもの」というのがクラスベース脳から見たらそう見えるというだけ。
頭がクラスベースの実装に染まってるからお前はもうバイアスなしにモノを見ることは無理。
130 : Name_Not - 2019/10/01(火) 19:31:44.69 ID:???.net (+77,+30,-263)
>>129
だから継承はクラスベースのクラス相当のものための用語なんだが?
継承=クラスベースなんだよ

正確に言えばプロトタイプベースでもクラスは作れるが、以前のJavaScriptは
独特のルールを守って実装しなければいけないから面倒だった。
このJavaScriptでクラスが作りづらいというのはJavaScriptの制限であって
プロトタイプベースの制限ではない

その証拠に最近(といっても随分前だが)改善されてJavaScriptでもクラスを作ることが用意になった。

で、以前の面倒な実装でも今の簡単な実装でも、実装がどうであれ「クラス」にすぎない。
クラスに相当するものは、クラスベースでもプロトタイプベースでも(それ以外)でも存在する。

プロトタイプベースだからクラスがないと考えるのは、お前が持ってるバイアスにすぎない。
131 : Name_Not - 2019/10/01(火) 21:26:24.28 ID:???.net (+57,+29,-11)
わざわざ質問してきてこうなんだよと教えたら、いやそうじゃないはずだと突っ張るやつってなんなんだろう
132 : Name_Not - 2019/10/01(火) 21:33:16.95 ID:???.net (+57,+29,-26)
残念ながら、回答にケチつけて、マウントとるのか大好き勢が常駐してるんだよ
133 : Name_Not - 2019/10/01(火) 21:53:02.44 ID:???.net (+53,+30,-55)
何が制限だバカバカしい。クラスの存在を前提としないプロトタイプベースのオブジェクト指向でクラスが作りにくくて何が悪い。
スポーツカーつかまえてでもそれ農道走りにくいよね言うてるのと同じじゃボケ
134 : Name_Not - 2019/10/01(火) 22:17:51.61 ID:???.net (+85,+21,-4)
JSではクラスは作りやすいでしょ
class構文入ってるんだから
135 : Name_Not - 2019/10/01(火) 22:30:09.91 ID:???.net (+52,+29,-4)
クラス構文はおじいちゃん介護構文
136 : Name_Not - 2019/10/01(火) 23:36:55.25 ID:???.net (+0,-29,-10)
Math.random()が0を返す確率はどれくらいですか?
137 : Name_Not - 2019/10/01(火) 23:38:57.86 ID:???.net (+114,+29,-88)
>>134
それな。プロタイプベースってのは内部の実装に過ぎず
class構文を使えば、プロタイプベースでクラスを容易に実装できる。

昔はclass構文がなかったから、クラスを実装するのは容易ではなかったが
別に実装できなかったわけじゃない。
138 : Name_Not - 2019/10/02(水) 01:21:14.44 ID:???.net (+37,-29,-64)
ECMAScript 2015 で導入された JavaScript クラスは、JavaScript にすでにあるプロトタイプベース継承の糖衣構文です。クラス構文は、新しいオブジェクト指向継承モデルを JavaScript に導入しているわけではありません。

おととい来てね、おじいちゃん?ww
139 : Name_Not - 2019/10/02(水) 03:27:22.39 ID:???.net (+104,+29,-22)
>>138
糖衣構文だから、どういうこと?

最初から糖衣構文を使うことで、プロタイプベースでも
クラスが書きやすくなったって話をしてるよね?
140 : Name_Not - 2019/10/02(水) 07:30:49.80 ID:???.net (+8,-29,-45)
>>137
> それな。プロタイプベースってのは内部の実装に過ぎず

仕様を無視した、プロトタイプベースじゃないJavaScript実装が存在するの?
141 : Name_Not - 2019/10/02(水) 07:57:03.07 ID:???.net (+57,+29,-22)
「Cでもクラス相当のものは実装できるからCにクラスはある!」
「CでもGC相当のものは実装できるからCはGC言語と言える!」
142 : Name_Not - 2019/10/02(水) 08:09:52.60 ID:???.net (+57,+29,-31)
実装すればあるだろうけど実装してないものにはないというだけ
143 : Name_Not - 2019/10/02(水) 08:23:10.93 ID:???.net (-1,-29,-33)
ECMAScript仕様って、「プロトタイプベース」ではないの?
144 : Name_Not - 2019/10/02(水) 08:48:24.77 ID:???.net (+80,+30,-71)
文言は細かく見よう

>>137
> それな。「プロタイプベース」ってのは内部の実装に過ぎず

>>139
> 最初から糖衣構文を使うことで、「プロタイプベース」でも

「プロトタイプベース」ではなく、「プロタイプベース」と書いてる(バグリング君も似たようなことをしたな)
仕様を知らないので、「内部の実装」と知ったかぶりをする
145 : Name_Not - 2019/10/02(水) 08:56:21.86 ID:???.net (+32,+9,-16)
うん実装じゃなくて仕様だよねw
146 : Name_Not - 2019/10/02(水) 12:54:52.05 ID:???.net (+63,+30,-62)
クラスベースっていうのはクラスから逃れられない言語ということであって、
民主主義国家でなくても民主主義はあるしできるように、
JSでも当然クラスという概念は持ち出せるし、構文にまでなってるんだから、
JSにクラスというものは当然に存在すると考えるのが合理的
147 : Name_Not - 2019/10/02(水) 13:24:23.64 ID:???.net (+88,+24,-20)
つまりC言語にもクラスは当然存在する。実装できるからw
148 : Name_Not - 2019/10/02(水) 19:14:52.98 ID:???.net (+53,+25,-9)
クラスを実装していないC言語にクラスは存在しない。あたりまえ。
149 : Name_Not - 2019/10/02(水) 19:30:14.62 ID:???.net (+56,+28,-34)
C++はCで実装されたんだからクラスを存在せしめたのはC言語。あたりまえ。
150 : Name_Not - 2019/10/02(水) 20:09:00.24 ID:???.net (+74,+29,-87)
>>147
クラスというのは概念なので
クラス専用の構文がないC言語でも
クラスの概念を導入したコードを書ける。

というのが正しいかな


以前のJavaScriptでもクラスの概念を導入することは可能だったし
newがあるんだから、クラスの概念を使うのが普通だった。

それに加えて最近のJavaScriptではクラス専用の構文が加わり
クラスを導入したコードが簡単にかけるようになった。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について