JavaScript の質問用スレッド vol.123 [無断転載禁止]©2ch.net

0001デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 73c8-oPzN)2017/04/03(月) 00:31:25.68 ID:82yaJsi70
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-6のテンプレを読んだ上で質問してください。次スレは>>950>>2のテンプレ案(本スレで改善案があれば考慮)を元に立ててください

■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
  (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
  ※必ず「問題の事象が再現されること」を確認してください。
   必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
※前スレ
JavaScript の質問用スレッド vol.122
http://echo.2ch.net/test/read.cgi/tech/1472426483/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

0002デフォルトの名無しさん (ワッチョイ b38c-U/Pn)2017/04/03(月) 00:32:46.51 ID:HcTbpYfB0
本スレはこっち

+ JavaScript の質問用スレッド vol.123 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1491143438/

0003デフォルトの名無しさん (ワッチョイ efff-U/Pn)2017/04/03(月) 00:33:38.69 ID:bzwlUbZO0
ワッチョイとは
BBS_SLIP
http://info.2ch.net/index.php/BBS_SLIP
スレ立て主が設定する事で、レスした人のIPアドレスからIDを変換して名前欄の横に表示が出ます。
荒らし対策という名目で広がったのですが、一言でいえば強制固定ハンドルネームのようなものです。
中段あたりに解説がありますが、浪人という名前の有料専用ブラウザを導入すれば、ワッチョイ表示なしで書き込む事も出来るようになります。

●注意点
ワッチョイ(SLIP)の変換は全板共通です。
IPアドレスから特定の法則で文字列に変換しているだけなので、IPアドレスが変わらない限り全部同じになります。
ですので、漫画板のワッチョイスレで○○かわえー、なんてレスした後、他のお硬い板のワッチョイスレで大議論になったり
なんかしてて議論相手にあなたのワッチョイのIDググられれば普通に他の板の書き込みがヒットします、
全く関係ないスレで別のスレの恥ずかしいレスを相手に突っ込まれたりする可能性があったりします。
これらを自覚してレスをしていないと、あるスレで下の名前をレスして、別の板のスレで苗字をレスして、
と...実は自分から身バレをしていたという可能性も無い訳ではありません。何万人もレスしてますからね、誰かがそういうポカをする事だってあり得ます。

変換自体は一週間でまた変わるので一生同じIDという訳ではないですが、注意しなければならないのはIPアドレスそれ自体が表示されているSLIPスレ。

IPアドレスは固定アドレスにしない限り変動すると思いがちですが、今は変動アドレスでも
殆ど固定と変わらない事が多いのです。下手をすればプロバイダ解約するまで同じIPアドレス。
IPアドレス表示されるスレに一度でもレスすれば、ワッチョイ=IPアドレスの関係がバレてしまうので
他のワッチョイスレでもIP表示で書き込んでる事と実質同じになってしまいます。
2週に渡ってIPアドレス表示のスレに書き込めば、ワッチョイIDは変わってますがIPは同じなので週を
跨いでも同じ人というのがバレますね。同じIPの過去のワッチョイIDをググればいくらでも過去に遡れる事になります。

0004デフォルトの名無しさん (ワッチョイ efff-U/Pn)2017/04/03(月) 00:33:57.32 ID:bzwlUbZO0
掲示板を見れば閲覧者のIPアドレスは管理者にわかるので日常的に第三者に渡っている情報ですが、
2chのレスでIPが残る(Googleの検索に引っ掛かる)となると少し意味が違ってきます。
IPアドレスからは接続地域と回線種類くらいしかわかりません。それぞれが情報を持っていても
外に開示している情報ではないので個々の情報では価値が薄いのですが、2chにレスがあれば情報を共有できます。一つ一つは薄い情報でも繋げれば意味が出てきます。

また、IPアドレスと本名住所を元々知っている相手にはどうでしょうか?
まず普通に家族が家のIPをググったら2chのレスを見られますね。
あなたの2chの書き込みが全てわかる訳です。趣味嗜好、悩み等を書き込んでいれば筒抜け。
あなたの知り合いがふざけてこのIPの奴○○って奴だよ、と書き込む事だってあるかもしれません。
例えば本名IP掴んでる通販業者が2chググってレス見て病気で悩んでいたのが知れたらその情報を心霊治療の業者に流されたりする可能性だってあります。

まぁそういう可能性も無いとは言えないのでIP表示のスレだけは気をつけて下さい。
先にその危険性を知っていればレスの内容も気をつけるでしょうけど、現状はその危険性をそもそも全く知らずに呑気に匿名だと思ってレスしている人が大半なのです。

0005デフォルトの名無しさん (ワッチョイ 73c8-agmj)2017/04/03(月) 00:34:49.92 ID:82yaJsi70
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/

■過去スレ全集
http://www2.atpages.jp/mirror/2ch/javascript/
http://usamimi.info/~mirrorhenkan/2ch/javascript/ (閲覧のみ)

■テンプレ案
https://fiddle.jshell.net/6018r9tu/1/show/light/

■関連スレ
JavaScript ライブラリ総合質問所 vol.5 [無断転載禁止]c2ch.net
http://echo.2ch.net/test/read.cgi/hp/1465399470/
JavaScript & jQuery 質問用スレッド vol.6 + [無断転載禁止]c2ch.net
http://echo.2ch.net/test/read.cgi/hp/1465566635/
【node.js】サーバサイドjavascript 4【io.js】 [無断転載禁止]c2ch.net
http://echo.2ch.net/test/read.cgi/tech/1460359714/
(X)HTML/CSS の質問に優しく答えるスレ23 [無断転載禁止]c2ch.net
http://echo.2ch.net/test/read.cgi/hp/1467511443/
Canvasについて語ろう
http://peace.2ch.net/test/read.cgi/hp/1305093769/

0006デフォルトの名無しさん (ワッチョイ 73c8-agmj)2017/04/03(月) 00:35:29.98 ID:82yaJsi70
■FAQ
http://fiddle.jshell.net/vSqKr/44/show/light/

◆開発者ツール(Developer Tools)の基本的な使い方 (全部はhttp://fiddle.jshell.net/vSqKr/44/show/light/#Browser-Developer-Tools )
 ▼諸注意
  - 本説明では Google Chrome の開発者ツールの名称に従います。他ブラウザで使う場合は適宜読み替えて下さい。
  - IE9- でコンソールを使うには予め開発者ツールを起動しておく必要があります(開発者ツールを起動しないと console.log() が機能しません)
  - Safari はデフォルトで開発者ツールが無効な為、有効に設定する必要があります。
  https://developer.apple.com/library/safari/documentation/AppleApplications/Conceptual/Safari_Developer_Guide/GettingStarted/GettingStarted.html
 ▼要素を検証
 1. ページ上で右クリックして [要素を検証]
 2. [Elements] パネルが開き、対象のDOMノードが選択される(選択対象が目的の要素でなければ [Elements] パネル上で選択し直す)
 3. 右側のサイドバーから知りたいステータス名のタブを選択する
   - [Styles] タブ … CSSプロパティの指定値を表示 (※カスケードによって上書きされたプロパティは取り消し線で表示される)
   - [Computed] タブ … CSSプロパティの算出値を表示(

0007デフォルトの名無しさん (ワッチョイ 238c-U/Pn)2017/04/03(月) 00:35:44.14 ID:MrxLrKt60
前:Name_Not_Found[sage] 投稿日:2016/02/24(水) 00:48:54.16 ID:???
■JavaScript主要ライブラリ・フレームワーク

jQuery
http://jquery.com/
jQuery UI
http://jqueryui.com/
jQuery Mobile
http://jquerymobile.com/
Lo-Dash
https://lodash.com/
Backbone.js
http://backbonejs.org/
Underscore.js
http://underscorejs.org/
AngularJS
https://angularjs.org/
Knockoutjs
http://knockoutjs.com/
RequireJS
http://requirejs.org/
D3.js
http://d3js.org/
threejs
http://threejs.org/

0008デフォルトの名無しさん (ワッチョイ 73c8-agmj)2017/04/03(月) 00:35:51.98 ID:82yaJsi70
■FAQ(続き)
◆JavaScriptの実行速度
JavaScriptの速度は「ブラウザ名」「ブラウザのバージョン」「PCスペック」に依存します(ブラウザのバージョン毎に最適化具合が異なります)。
速度の疑問解消の為に http://jsperf.com/ にコードをUPしてブラウザ毎に速度計測する事を推奨します。
例外として、仕様における理論上の速度が明確になっている場合があります。
例えば、正規表現によるマッチング処理を考えた場合、「RegExp#test > RegExp#exec > String#match」は ES5 仕様で保証されています。
ES5 仕様において RegExp#test が最も処理数が少なく、String#match が最も処理数が多いことが明確だからです。
ブラウザによっては RegExp#test の最適化が十分でなく、String#match の最適化が RegExp#test より十分であれば逆転する可能性はありますが、各メソッドの最適化が一律であればこの前提が崩れる事はありません。

■各種仕様 ( http://fiddle.jshell.net/vSqKr/44/show/light/#Link も参照 )
◆ Standard ECMA-262
http://bclary.com/2004/11/07/ (ECMAScript 3 HTML版)
http://www2u.biglobe.ne.jp/~oz-07ams/2002/ecma262r3/ (ECMAScript 3 和訳)
http://www.ecma-international.org/ecma-262/5.1/ (ECMAScript 5.1 HTML版)
http://tsofthome.appspot.com/ecmascript.html (ECMAScript 5.1 和訳)
http://www.ecma-international.org/ecma-262/6.0/ (ECMAScript 6 / ECMAScript 2015)
http://kangax.github.io/compat-table/es5/ (ECMAScript 5 compatibility table)
http://kangax.github.io/compat-table/es6/ (ECMAScript 6 compatibility table)
◆ HTML Standard (HTML5)
http://www.whatwg.org/specs/web-apps/current-work/multipage/
http://momdo.s35.xrea.com/web-html-test/spec/WD-html51-20130528/Overview.html (HTML5.1 部分訳)
http://www.hcn.zaq.ne.jp/___/WEB/WebStorage-ja.html (Web Storage 和訳)

0009デフォルトの名無しさん (ワッチョイ 73c8-agmj)2017/04/03(月) 00:36:21.03 ID:82yaJsi70
■FAQ
http://fiddle.jshell.net/vSqKr/44/show/light/

◆開発者ツール(Developer Tools)の基本的な使い方 (全部はhttp://fiddle.jshell.net/vSqKr/44/show/light/#Browser-Developer-Tools )
 ▼諸注意
  - 本説明では Google Chrome の開発者ツールの名称に従います。他ブラウザで使う場合は適宜読み替えて下さい。
  - IE9- でコンソールを使うには予め開発者ツールを起動しておく必要があります(開発者ツールを起動しないと console.log() が機能しません)
  - Safari はデフォルトで開発者ツールが無効な為、有効に設定する必要があります。
  https://developer.apple.com/library/safari/documentation/AppleApplications/Conceptual/Safari_Developer_Guide/GettingStarted/GettingStarted.html
 ▼要素を検証
 1. ページ上で右クリックして [要素を検証]
 2. [Elements] パネルが開き、対象のDOMノードが選択される(選択対象が目的の要素でなければ [Elements] パネル上で選択し直す)
 3. 右側のサイドバーから知りたいステータス名のタブを選択する
   - [Styles] タブ … CSSプロパティの指定値を表示 (※カスケードによって上書きされたプロパティは取り消し線で表示される)
   - [Computed] タブ … CSSプロパティの算出値を表示(

0010デフォルトの名無しさん (ワッチョイ 238c-MCV6)2017/04/03(月) 00:36:27.84 ID:MrxLrKt60
テンプレここまで

-----------------------------------------------

0011デフォルトの名無しさん (ワッチョイ 73c8-agmj)2017/04/03(月) 00:36:42.76 ID:82yaJsi70
■各種仕様 (続き)
◆ Document Object Model (DOM) / CSS Object Model (CSSOM)
http://www.hcn.zaq.ne.jp/___/WEB/DOM4-ja.html (DOM Standard (DOM4) 和訳)
http://www.w3.org/TR/DOM-Level-3-Events/ (DOM3 Events)
http://www.w3.org/TR/uievents/ (UI Events)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-ja.html (CSSOM 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-view-ja.html (CSSOM View Module 和訳)
◆ その他のWeb関連仕様
http://domparsing.spec.whatwg.org/ (DOM Parsing and Serialization - innerHTML等)
http://www.hcn.zaq.ne.jp/___/WEB/XHR-ja.html (XMLHttpRequest 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/File_API-ja.html (File API 和訳)
http://www.whatwg.org/specs/ (WHATWGの仕様一覧)
◆ MDN (Netscape/Mozilla)
https://developer.mozilla.org/ja/docs
◆ MSDN Library
https://msdn.microsoft.com/en-us/library/ie/hh828809 (Internet Explorer API)
http://msdn.microsoft.com/ja-jp/library/yek4tbz0.aspx (JavaScript)
http://msdn.microsoft.com/ja-jp/library/cc427807.aspx (JScript)
http://msdn.microsoft.com/ja-jp/library/cc409712.aspx (DHTML)
◆ JavaScript Garden (ja)
http://bonsaiden.github.com/JavaScript-Garden/ja/
◆ JSON (JavaScript Object Notation)
http://www.json.org/json-ja.html

0012デフォルトの名無しさん (ワッチョイ 73c8-agmj)2017/04/03(月) 00:37:03.06 ID:82yaJsi70
■各種仕様 (続き)
◆ Document Object Model (DOM) / CSS Object Model (CSSOM)
http://www.hcn.zaq.ne.jp/___/WEB/DOM4-ja.html (DOM Standard (DOM4) 和訳)
http://www.w3.org/TR/DOM-Level-3-Events/ (DOM3 Events)
http://www.w3.org/TR/uievents/ (UI Events)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-ja.html (CSSOM 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-view-ja.html (CSSOM View Module 和訳)
◆ その他のWeb関連仕様
http://domparsing.spec.whatwg.org/ (DOM Parsing and Serialization - innerHTML等)
http://www.hcn.zaq.ne.jp/___/WEB/XHR-ja.html (XMLHttpRequest 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/File_API-ja.html (File API 和訳)
http://www.whatwg.org/specs/ (WHATWGの仕様一覧)
◆ MDN (Netscape/Mozilla)
https://developer.mozilla.org/ja/docs
◆ MSDN Library
https://msdn.microsoft.com/en-us/library/ie/hh828809 (Internet Explorer API)
http://msdn.microsoft.com/ja-jp/library/yek4tbz0.aspx (JavaScript)
http://msdn.microsoft.com/ja-jp/library/cc427807.aspx (JScript)
http://msdn.microsoft.com/ja-jp/library/cc409712.aspx (DHTML)
◆ JavaScript Garden (ja)
http://bonsaiden.github.com/JavaScript-Garden/ja/
◆ JSON (JavaScript Object Notation)
http://www.json.org/json-ja.html

0013デフォルトの名無しさん (ワッチョイ 238c-MCV6)2017/04/03(月) 00:37:21.41 ID:MrxLrKt60
■JavaScript主要ライブラリ・フレームワーク

jQuery
http://jquery.com/
jQuery UI
http://jqueryui.com/
jQuery Mobile
http://jquerymobile.com/
Lo-Dash
https://lodash.com/
Backbone.js
http://backbonejs.org/
Underscore.js
http://underscorejs.org/
AngularJS
https://angularjs.org/
Knockoutjs
http://knockoutjs.com/
RequireJS
http://requirejs.org/
D3.js
http://d3js.org/
threejs
http://threejs.org/

0014デフォルトの名無しさん (ワッチョイ 73c8-agmj)2017/04/03(月) 00:39:41.45 ID:82yaJsi70
■諸注意
vol.115でlodashを不必要に推奨して啓蒙する行為が多く確認されており、ライブラリ系の質問はvol.116から禁止されました。
vol.115,116ではライブラリ禁止する発言が見られた直後にライブラリを許可する意図で次スレを立てる行為が確認されています。
本スレッドでライブラリ許可を求める発言が確認された場合は不要な争いを避ける為、スルーすることを推奨します。
ライブラリの質問はライブラリスレへ誘導し、誘導行為への反論はスルーしてください。

-----ここまでテンプレ-----
テンプレは >>1,5,6,8,9,11,12 および本レス

0015デフォルトの名無しさん (ワッチョイ 73c8-agmj)2017/04/03(月) 00:41:25.92 ID:82yaJsi70
テンプレは ID:82yaJsi70 投下分です。
見れば分かりますが荒らしが常駐しておりますのでご注意下さい。

0016デフォルトの名無しさん (ワッチョイ 238c-MCV6)2017/04/03(月) 00:41:55.25 ID:MrxLrKt60
またあらされるだろうが
ワッチョイを弱くするんじゃねーよ

+ JavaScript の質問用スレッド vol.123 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1491143438/

0017デフォルトの名無しさん (ワッチョイ 73c8-agmj)2017/04/03(月) 00:50:35.05 ID:82yaJsi70
お前ら本当に息を吐くように嘘をつくのな

0018デフォルトの名無しさん (ワッチョイ e3a1-ApgU)2017/04/09(日) 00:11:28.55 ID:fJb/P0a60
Web上の画像からMD5ハッシュを作りたい。
PHPでは

$file = 'http://tokai-tv.com/aonoumi/common/img/bg02.jpg';
echo md5_file($file);

結果:ccfc83e6c92e7571f266215458776bbf

こんな感じで作れるのだが、javaScriptでの作り方がわからない

0019デフォルトの名無しさん (ワッチョイ e6c8-mfmJ)2017/04/09(日) 07:45:08.98 ID:UMSN5A0G0
>>18
どの部分がわからないのさ

0020デフォルトの名無しさん (ワッチョイ e3a1-ApgU)2017/04/09(日) 09:06:06.81 ID:fJb/P0a60
この部分
md5_file($file)

0021デフォルトの名無しさん (ワッチョイ e3a1-ApgU)2017/04/09(日) 12:26:46.60 ID:fJb/P0a60
やっぱりよくわからない
別の方法探してみるわ…

0022デフォルトの名無しさん (JP 0Hbe-4iQ7)2017/04/09(日) 12:48:09.41 ID:bUVSS9K7H
同等の関数を実装する

0023デフォルトの名無しさん (アウアウウー Sa93-ajVR)2017/04/09(日) 13:00:55.24 ID:c0gwQMp6a
まずその関数の中身は見たのか?

0024デフォルトの名無しさん (ワッチョイ 6b7b-HE/W)2017/04/15(土) 15:21:52.52 ID:9YbSLxnA0
文字列中にバックスラッシュをエスケープせずに記述したくてString.rawを使ったのですが、
\ + 数字が含まれていると8進数に解釈しようとするのか Octal literal in strict mode という
エラーになります。

module.exports = {
path: String.raw`C:\Data\123`,
};

8進数に解釈しようとするのを回避する方法ってないんですかね?

0025デフォルトの名無しさん (ワッチョイ 1bc8-7DHh)2017/04/15(土) 16:59:13.00 ID:+c21o4AH0
>>24
調べてみたがないっぽいな
http://2ality.com/2016/09/template-literal-revision.html

0026デフォルトの名無しさん (ワッチョイ 6b7b-HE/W)2017/04/15(土) 18:35:44.54 ID:9YbSLxnA0
なるほど、ありがとうございます。解決できのは早くてES2018ですか。
TypeScriptでさっさと取り込んでくれないかなぁ。

0027デフォルトの名無しさん (エーイモ SE2f-pVHc)2017/04/17(月) 11:13:56.79 ID:EyfSFiB8E
const F = function fun() {
this.age = 1;
};

F.prototype.getage = function getage() {
'use strict';

console.log(this.age);
};

const f = new F();
f.getage(); // 1

0028デフォルトの名無しさん (エーイモ SE2f-pVHc)2017/04/17(月) 11:15:00.74 ID:EyfSFiB8E
const F = () => {
this.age = 1;
};

F.prototype.getage = function getage() {
'use strict';

console.log(this.age);
};

const f = new F();
f.getage();

これはTypeError: Cannot set property 'getage' of undefined

0029デフォルトの名無しさん (エーイモ SE2f-pVHc)2017/04/17(月) 11:15:25.44 ID:EyfSFiB8E
const F = () => {
this.age = 1;
};

F.prototype.getage = () => {
'use strict';

console.log(this.age);
};

const f = new F();
f.getage();

これもTypeError: Cannot set property 'getage' of undefined

0030デフォルトの名無しさん (エーイモ SE2f-pVHc)2017/04/17(月) 11:15:59.76 ID:EyfSFiB8E
const F = function F() {
this.age = 1;
};

F.prototype.getage = () => {
'use strict';

console.log(this.age);
};

const f = new F();
f.getage(); // undefined

0031デフォルトの名無しさん (エーイモ SE2f-pVHc)2017/04/17(月) 11:16:39.84 ID:EyfSFiB8E
>>27
>>28
>>29
>>30
の4つのコードの結果が何故こうなったのか理由を教えてください

0032デフォルトの名無しさん (アウアウカー Saef-Sirm)2017/04/17(月) 12:35:49.92 ID:nxPRGvnHa
インスタンス化したときじゃなくアロー使った時点でthisが束縛されてるから

0033デフォルトの名無しさん (ワッチョイ 0bca-n2Cn)2017/04/18(火) 16:19:41.63 ID:owHPt2Un0
generator-chrome-extension-kickstart を使ってchrome-extension作っているんです。
これ自体はすごく便利なんですが修正するたびにコンパイルが入ってリロードするため、
chromeが「この拡張機能は、自身により頻繁に再読み込みされています。」と、
開発中のプラグインを無効化してしまいます。
これが面倒なので警告を無効化する方法を教えていただけないでしょうか?

0034デフォルトの名無しさん (ワッチョイ 0b70-Pi+M)2017/04/19(水) 09:59:50.06 ID:NBkpFfOk0
手動で更新すればいい

0035デフォルトの名無しさん (エーイモ SE3f-pVHc)2017/04/19(水) 19:05:12.62 ID:l7QdfMBTE
>>32
理解しました
function()を無理にアロー演算子に書き換える必要はなさそうですね
先輩ありがとうございます

0036デフォルトの名無しさん (アウアウウー Saaf-Sirm)2017/04/19(水) 19:18:09.01 ID:hZKuXyWEa
>>35
アローは関数型プログラミングの流れを汲んでるから今回みたくオブジェクト指向で使おうとすると相性悪い

0037デフォルトの名無しさん (ワッチョイ a370-kG10)2017/04/21(金) 21:06:23.20 ID:Z8gqe29s0
関数型の流れを組んでるからとか、どうしたらそんな頭の悪いこと思いつくんだ?
そもそもオブジェクト指向と相性悪いと言うこともないし。
ただ単に既存のthisを利用したクラスベースもどきクラスシステムと相性悪いというだけで、
オブジェクト指向はプロトタイプベースでも、別のクラスベースもどきでもいくらでもできる。

0038デフォルトの名無しさん (ワッチョイ 0a8c-m8Mb)2017/04/21(金) 21:53:18.77 ID:TFy/T03e0
関数型っていうのは、ロジックを記述するもの。
オブジェクト指向っていうのは、そのロジックを持った構造を作るもの

住み分けがしっかりしてるから、オブジェクト指向+関数型で
プログラミングするのが今のトレンド

0039デフォルトの名無しさん (ワッチョイ 0a8c-m8Mb)2017/04/21(金) 21:58:57.35 ID:TFy/T03e0
>>37
> ただ単に既存のthisを利用したクラスベースもどきクラスシステムと相性悪いというだけで、

それは違う。逆にクラスベースのJavaScriptと相性がいい。

例えばこんな感じな

class Foo {
  func() {
    lib.sort(function() { thisはなんになる? })
    lib.sort(() => { thisは当然Fooのインスタンス })
  }
}

今まではthisが何になるかは、lib.sort() の仕様によって決まるから、
他の言語のように
「クラスの中のコードでthisといったらインスタンス自身に決まってるだろJK」
と言うことができなかった。

アロー関数を使って(言い換えるとfunctionキーワードなしで)JavaScriptをかけば
クラスの中でthisを使えば、どこで使ってもそのクラスのインスタンスとなり、
他の言語と同じように考えることができる。

0040デフォルトの名無しさん (アウアウウー Sacf-41eg)2017/04/21(金) 22:51:06.77 ID:36WFQ6u4a
ラムダ式に引数を与えないなんてとんでもない!

0041デフォルトの名無しさん (ワッチョイ 0a8c-m8Mb)2017/04/21(金) 23:22:22.43 ID:TFy/T03e0
>>40
そこは本質的なところじゃない自分でかってに補完しろ

0042デフォルトの名無しさん (ワッチョイ a370-kG10)2017/04/24(月) 05:00:01.27 ID:UsTW2ezt0
>>39
屁理屈だな
メソッドにできないということが表の相性とすればそれは裏の相性だよ

0043デフォルトの名無しさん (ワッチョイ bb8c-m8Mb)2017/04/24(月) 23:04:59.41 ID:39Q41QHF0
>>42
それは↓に言うべきことだね

>>37
> ただ単に既存のthisを利用したクラスベースもどきクラスシステムと相性悪いというだけで、

相性悪いが裏の相性(?)ということなら、>>39が書いたとおり相性が良いってことだろう。

それにそういうどうでもいいことしか言えないってことは、
>>39の内容には何も意見できないってみなすしかないねw

0044デフォルトの名無しさん (アウアウウー Sacf-41eg)2017/04/24(月) 23:16:12.81 ID:F4BuIEVAa
JS使いには性格悪い人しかいないんですかね?

0045デフォルトの名無しさん (ワッチョイ bb8c-m8Mb)2017/04/24(月) 23:17:09.83 ID:39Q41QHF0
>>44
お前性格悪いなw

0046デフォルトの名無しさん (アウアウエー Sa82-Xafy)2017/04/25(火) 06:10:59.30 ID:X14wy5zca
ブラウザさえあれば入門出来るから、いろんな人はいるだろね。

0047デフォルトの名無しさん (ワッチョイ a370-Od9D)2017/04/25(火) 08:59:18.77 ID:VRx9SYaG0
>>43
だからさあ、本当に言わないと分かんない?
コンテキストが違うでしょ?
そこまでずっとアロー関数を通常の関数のようにメソッドとして使えないという話をしてて、
その流れでの相性の話題なのよ

そしてそこでは君の言ったことは、(もっと広い視野で見て)「オブジェクト指向とは相性悪くない」
に含まれるのよ
君は数レスどころか1レスもまともに読めてない
あまりに視野が狭すぎだよ

0048デフォルトの名無しさん (ワッチョイ 8692-F77J)2017/04/25(火) 09:57:49.62 ID:t+yXw+A30
>>47
頭悪いぞお前、コンテキストは>>36のアウアウな発言

>アローは関数型プログラミングの流れを汲んでるから今回みたくオブジェクト指向で使おうとすると相性悪い

functionはOOスタイルプログラミングでクソって書いてあるのに
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions

Until arrow functions, every new function defined its own this value (a new object in the case of a constructor,
undefined in strict mode function calls, the context object if the function is called as an "object method", etc.).
This proved to be annoying with an object-oriented style of programming.

0049デフォルトの名無しさん (ワッチョイ a370-Od9D)2017/04/25(火) 14:18:09.68 ID:VRx9SYaG0
>>48
だからそれに君と同じように批判してるのが>>37だっていう話をしてるんだが
オブジェクト指向とは相性悪くないってはっきり言ってるでしょ
頭大丈夫か?

0050デフォルトの名無しさん (ワッチョイ 1fbc-m8Mb)2017/04/25(火) 16:19:31.03 ID:x5rQ36LO0
オブジェクトを理解できていないのがドヤ顔でなんか言ってるわw

0051デフォルトの名無しさん (JP 0Hcf-41eg)2017/04/25(火) 18:42:15.58 ID:zu/PEsNlH
constとfreezeがデフォルトになる時代を待ってます
2020くらいまでにおねしゃす

0052デフォルトの名無しさん (ワッチョイ bb8c-m8Mb)2017/04/25(火) 23:00:57.97 ID:dVF0/yIG0
>>47
お前が言ってるのは、オブジェクト指向との相性じゃなくて、
古いやり方、prototypeを使ってメソッドを追加する時限定の話じゃん。

オブジェクト指向の話でいうならば、お前が狭いんだよ。

0053デフォルトの名無しさん (ワッチョイ a370-mNJJ)2017/04/26(水) 10:54:04.97 ID:AO7c3nBd0
>>52
だから最初からその狭い範囲限定で話をしてるでしょ
で、広い範囲では違うよと書いてるでしょ
レスをちゃんと読めって言ってるのよ……
まだ分かんない?

0054デフォルトの名無しさん (ワッチョイ 8692-F77J)2017/04/26(水) 12:16:56.72 ID:bDIzZfBu0
>>53

>アローは関数型プログラミングの流れを汲んでるから今回みたくオブジェクト指向で使おうとすると相性悪い

これは狭い範囲に限定した発言じゃ無いと思うが
そんな必死になってこのアウアウを擁護する理由は?

0055デフォルトの名無しさん (ワッチョイ 878c-m8Mb)2017/04/26(水) 21:05:53.95 ID:d/1p1duw0
>>53
だからこうですよね?

限定した狭い意味
「アローはprotptypeを使ってメソッドを作成するときには使えない」

大幅に範囲拡大した場合
「アローはオブジェクト指向で使おうとすると相性が悪い」
※注意 オブジェクト指向でアロー関数が相性がいい理由は上で説明済みです

新着レスの表示
レスを投稿する