JavaScript情報交換所(プログラミング既習者専用) [無断転載禁止]©2ch.net (766レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

549
(1): デフォルトの名無しさん [sage] 2020/05/05(火)00:28 ID:esp/1iza(1/6)
>>546
> 関数が変数に代入できることとか。
Javaも出来るようになっただろ
というかメジャー言語で出来なかったのはJavaだけで、それ以外の言語は全部出来てる
Cでもだ
コツ?そりゃお前が何も知らない馬鹿だとちゃんと自覚することだよ
他言語少しでもかじってれば、そんなところで引っかかることはない
(ただしJavaの連中はこのタイプ=他言語なんて全く知らない馬鹿も多いとは聞くが)

>>548
そうか?こいつは分かったつもりの馬鹿だと思うぞ
確認したが、JavaもObjectクラスあるし、使い方としてはJavaのObjectとも同じ立ち位置だ
> クラス ArrayList<E>
> java.lang.Object
> java.util.AbstractCollection<E>
> java.util.AbstractList<E>
> java.util.ArrayList<E>
> https://docs.oracle.com/javase/jp/7/api/java/util/ArrayList.html
これを
> 「Objectオブジェクトは、すべてのオブジェクトの基本オブジェクトである」
と表現されて理解出来てないのだから、Javaもオブジェクト指向も分かってない馬鹿だよ
この部分はまだプロトタイプベースがどうとか以前の問題だ

まあ正直俺はプロトタイプベースに大して戸惑わなかったし、
今でもプロトタイプベースの方がクラスベースより表現範囲が広いので良いと思ってる
そしてこいつはいわゆる「クラス脳」で永遠とプロトタイプベースを理解出来ないのだろう
といっても実際にプロトタイプベースでないと組めないような事をするのは希だし、
クラス脳の為にクラス構文も入ったので、別段問題でもないけど
552: デフォルトの名無しさん [sage] 2020/05/05(火)10:37 ID:esp/1iza(2/6)
>>550
Web制作板確認したが、相変わらずだな
まあ俺はこのレベルの馬鹿を引き取ってくれることには大賛成だから、どうぞよろしく、でしかないが
553: 549 [sage] 2020/05/05(火)10:39 ID:esp/1iza(3/6)
>>548
お前もprototype継承を特別視過ぎ

> 前半部分は"Object"という名前のオブジェクトがグローバルに存在するということに想像が及ばないと理解しづらいだろうし、
Javaにも全く同じ立ち位置のObjectが存在してる
Javaを知らないか、知っててピンと来ない=単なる馬鹿か

> 後半は「基本オブジェクト」というwell-definedでない言葉で説明しているが
C#でも全く同じ表現だ
> Object クラス
> これは、全 .NET クラスの基本クラスであり、型階層のルートです。
> https://docs.microsoft.com/ja-jp/dotnet/api/system.object?view=netcore-3.1
prototypeベースだからクラスではなくオブジェクトとなっている
だからこの表現で正しいんだよ

> オブジェクト指向の理解とは関係ないJavaScript固有の話だと思うがな。
これもダウト
> 多くの言語では、このように継承元を書かずに、クラスを定義した場合は、Object クラスから直接継承したとみなされる (550)
ホントかよ、と思ったが、少なくともJavaとC#ではそうなるようだ(JavaScriptもだが)
これは本来は言語ではなくフレームワークの仕様であり、C++はそうなのだが、
少なくともJavaとC#は最初からオブジェクト指向大前提(のフレームワークを使う前提)でしか使えない仕様らしい
が、それはさておき、全ての型のルートを持ってボックス化出来るようになっており、それを利用する、というのは、
典型的なオブジェクト指向の使い方であって、JavaScript固有の話でも何でもない
というか、むしろ、JavaScript固有の話なんて何もない
prototypeも別にJavaScriptが発明したものでもない
初見だとそれなりに戸惑う、というだけ
ただしJavaScriptのオブジェクト指向なんてJava/C#のオブジェクト指向からすると全く使い物にならない物だし、
実際にボックス化やアップ/ダウンキャスト等を考える必要なんてほぼ無いだろ

お前自身もオブジェクト指向を正しく理解出来てないのだと思うぜ
555
(1): デフォルトの名無しさん [sage] 2020/05/05(火)11:16 ID:esp/1iza(4/6)
>>554
ねえよ
俺はそれは単なる馬鹿だとしか認識しない
少なくともこの馬鹿はJavaもオブジェクト指向もマスターしてるつもりなんだぜ

自分が何も知らないことを自覚できず、
> (ワラ
とかやってるから馬鹿のままなんだよ
こいつは既に老害化してる
JavaですらJava8(2014)から関数ポインタを使えるようになってる
こいつはこのことすら知らない
といっても実際Java界隈なんてその程度だとは思うが

オブジェクト指向を利用してコードを共通化しようとすると、どうしても
C++のように型消去するか、
JavaやC#やJavaScriptのObjectのような型階層のルートが必要になってくる
これらの言語で全てそれが「Object」という名前で統一されているのは偶然ではない
オブジェクト指向(=ObjectOriented)のルートだからObjectなんだよ
今時のメジャー言語は全てオブジェクト指向出来るようになってるし、
逆に、「Object」とかいう物が出てきたら、これか!とピンと来ない方がおかしい

つっても重ねて言うが、Javaの連中なんてその程度なのも事実だが
557: デフォルトの名無しさん [sage] 2020/05/05(火)11:39 ID:esp/1iza(5/6)
>>556
勿論知ってるぞ

Javaのが「関数ポインタ」ではなく「関数参照」だというのならそうなのだろう
見て分かるとおり、俺はJavaは使ってないからその辺は正確ではない

ただぶっちゃけ、ポインタと参照はほぼ等価だし、
C++のようにそれらが別物だと明示的な言語以外では混同してても全く問題ないと思うが
実際、JavaScriptにおいて「参照」を「ポインタ」と言い換えても何ら問題ないだろ

どう見ても俺の揚げ足取りをしようとしているように見えるが、
それが価値あると思うなら頑張ってどうぞ
ただし俺は馬鹿と話す意味はないと見たらすぐ降りる
その場合はお前の勝ちでいい

んで、関数ポインタと参照の違いを知っているお前は、どんな素晴らしい知見を披露してくれるの?
是非よろしく
559: デフォルトの名無しさん [sage] 2020/05/05(火)12:10 ID:esp/1iza(6/6)
>>558
> そしてJavaで参照はずっと前からできる
Java8で新しく出来るようになったのは、『関数』参照な
話をずらすな
そして>>546が理解出来てないのはこれだ

> ポインタはアドレス加算などの演算ができるもの
> アドレス加算ができない以上それは参照であってポインタではない
それはC++での定義な
RustやGoも「ポインタ」を扱えるが、こちらは最初から加算なんて出来ないようになっている(確か)
少なくともRustやGoの定義する「ポインタ」はそう

というか、C++の参照自体が「ポインタは危険なのでコンパイラ側で対策して『参照』と命名しました」でしかないし、
JavaやC#で言う参照も全くこれと同じなのだが、当然実体は「ポインタ」でしかなく、
当然関数呼び出しの引数にはまんま「ポインタ」が積まれる

というかそこら辺理解出来てないのはやっぱりJavaしか知らない馬鹿だからだ
ポインタと参照が実体は同じだ、ということを理解出来ないのも
(論理的な意味が違うだけで、物理的な意味や値は同じ)

いずれにしてもJavaってのはかなり簡素化された言語で、
コンピューターの実体(物理構造)を知らなくてもいいように出来ている
これ自体はいいことなのだが、
その程度の知識なのに「ポインタと参照は違う(キリッ」とかやるのは間違ってる
自分の知識が全く足りてないことを認めて、きちんと学んだ方がいい
ポインタはCの鬼門だとされているが、現実として、ポインタを扱った方が動作効率が圧倒的によく、
結果的にJavaでもJavaScriptでも、或いは他言語でも、内部動作はポインタで作られているので、
どうしてこういう動きをするのか、どうしてこういう仕様なのか、を理解するのは、ポインタの理解が不可欠だ
ある程度以上のプログラマになる為には、ポインタの理解から逃げているようでは無理だ
これが逆にJavaプログラマが相変わらず糞な遠因でもある
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.032s