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

みんなの評価 :
レスフィルター : (試験中)
>>399
型に関係する部分くらいだね
静的型付け/型チェック、クラスベースのオブジェクト指向、インターフェース、
関数の型、メソッドオーバーロード、Enum, ジェネリクス、代数型、Null Safetyなど
あと強いて言えばマクロ、メタプログラミング、マルチスレッド辺り
型に関係する部分くらいだね
静的型付け/型チェック、クラスベースのオブジェクト指向、インターフェース、
関数の型、メソッドオーバーロード、Enum, ジェネリクス、代数型、Null Safetyなど
あと強いて言えばマクロ、メタプログラミング、マルチスレッド辺り
>>398
世界平均ではごく少数だけど
日本、北朝鮮、アフリカ諸国、東欧、南米とかに
偏って存在してる
日本以外ははふっるい中古PCが多いせい
日本は00年代の早くから
IEをフロントエンドとする企業向けWebシステムを
企業毎に高いお金かけてオリジナルで導入した
っていう、当時としては先進的な動向が原因
フロントエンド開発者はずっと
IEはクソだから見捨てようって言い続けてきたけど
SIerも広告代理店もそれを客に進言できなかったし
企業のシステム担当もChromeのインストールを認められなかった
そして今に至る
世界平均ではごく少数だけど
日本、北朝鮮、アフリカ諸国、東欧、南米とかに
偏って存在してる
日本以外ははふっるい中古PCが多いせい
日本は00年代の早くから
IEをフロントエンドとする企業向けWebシステムを
企業毎に高いお金かけてオリジナルで導入した
っていう、当時としては先進的な動向が原因
フロントエンド開発者はずっと
IEはクソだから見捨てようって言い続けてきたけど
SIerも広告代理店もそれを客に進言できなかったし
企業のシステム担当もChromeのインストールを認められなかった
そして今に至る
>>404
http://gigazine.net/news/20200629-apple-web-api-decline/
Safariが使えないAPI
・Web Bluetooth
・Web MIDI API
・Magnetometer API
・Web NFC
・Navigator API: deviceMemory
・NetworkInformation API
・Battery Status API
・Web Bluetooth Scanning
・AmbientLightSensor API
・EME Extension: HDCP Policy Check
・Proximity API
・WebHID API
・Serial API
・WebUSB
・Idle Detection
http://gigazine.net/news/20200629-apple-web-api-decline/
Safariが使えないAPI
・Web Bluetooth
・Web MIDI API
・Magnetometer API
・Web NFC
・Navigator API: deviceMemory
・NetworkInformation API
・Battery Status API
・Web Bluetooth Scanning
・AmbientLightSensor API
・EME Extension: HDCP Policy Check
・Proximity API
・WebHID API
・Serial API
・WebUSB
・Idle Detection
Safariが使えないと考えるからおかしい Chromeが積極的なだけ
何かの導入に消極的なことは、ただ遅れてることとは違う
消極的というのは積極的とおなじだけ特徴的だし、特長になりうる
どうしても先進機能を使いたい・使わせたいならChromeを使えばいい
でもSafariを使っている人はそもそもそういうことを求めてはいない
アイホンは諦めろ それだけでしょ
何かの導入に消極的なことは、ただ遅れてることとは違う
消極的というのは積極的とおなじだけ特徴的だし、特長になりうる
どうしても先進機能を使いたい・使わせたいならChromeを使えばいい
でもSafariを使っている人はそもそもそういうことを求めてはいない
アイホンは諦めろ それだけでしょ
>>407
それらは遅れてるんじゃなくて明確な意図を持って実装しないという話では
ほとんどのものはブラウザにハード触らせたいGoogleが自分の都合で実装して
それをブラウザにハード触らせたくないAppleが自分の都合で実装しないと言ってるんでしょ
それらに関してはMozillaもApple寄りだし
その件に限ってはAppleの方針に賛成だな
何でもかんでもブラウザが触れるのは嫌だ
それらは遅れてるんじゃなくて明確な意図を持って実装しないという話では
ほとんどのものはブラウザにハード触らせたいGoogleが自分の都合で実装して
それをブラウザにハード触らせたくないAppleが自分の都合で実装しないと言ってるんでしょ
それらに関してはMozillaもApple寄りだし
その件に限ってはAppleの方針に賛成だな
何でもかんでもブラウザが触れるのは嫌だ
ループ処理の中でイベントを設定して、呼び出されるコールバック関数側で
どうにかインデックス番号を取得する方法はありませんか?
無名関数を使わない方法が知りたいです。
よろしくお願いします。
var sample = function() {
console.log(i);
};
var arr = [xxx, yyy, zzz];
arr.forEach(function(v, i, arr) {
arr[i].addEventListener('click', sample);
});
どうにかインデックス番号を取得する方法はありませんか?
無名関数を使わない方法が知りたいです。
よろしくお願いします。
var sample = function() {
console.log(i);
};
var arr = [xxx, yyy, zzz];
arr.forEach(function(v, i, arr) {
arr[i].addEventListener('click', sample);
});
>>417
まじかー
アロー関数じゃなくて普通の関数で書けば↓こんな形
var sample = function(i) {
return function() {console.log(i)};
};
var arr = [xxx, yyy, zzz];
arr.forEach(function(v, i) {
v.addEventListener('click', sample(i)); //← sample(i)を実行した結果のfunction(){console.log(i)}がイベントハンドラになる
});
まじかー
アロー関数じゃなくて普通の関数で書けば↓こんな形
var sample = function(i) {
return function() {console.log(i)};
};
var arr = [xxx, yyy, zzz];
arr.forEach(function(v, i) {
v.addEventListener('click', sample(i)); //← sample(i)を実行した結果のfunction(){console.log(i)}がイベントハンドラになる
});
var sample = function(i) {
return function() {console.log(i)};
};
↑をアロー関数で書けば↓こうなる
var sample = (i) => () => console.log(i);
return function() {console.log(i)};
};
↑をアロー関数で書けば↓こうなる
var sample = (i) => () => console.log(i);
この場合のsampleはコールバック関数ではなくてコールバック関数を生成する関数だよ
今はもうだいぶ一般的になっちゃったけど昔は高階関数ってJSのお家芸みたいなとこあったよね。
いやlispとかまで言われたらあれだけどメインストリーム言語としては。
いやlispとかまで言われたらあれだけどメインストリーム言語としては。
>>421
ありがとうございます。
ちなみになのですが、関数の中で関数返しているのでsampleメソッドはクロージャ扱いになるんでしょうか?
また、詳細を調べる際のワードとしては「部分適用」になるのでしょうか?
部分適用という使い方としては出てくるのですが、今回のようにコールバック関数に引数を渡すための
手法の名前がありましたら、詳しく調べたいので教えていただけないでしょうか。
ありがとうございます。
ちなみになのですが、関数の中で関数返しているのでsampleメソッドはクロージャ扱いになるんでしょうか?
また、詳細を調べる際のワードとしては「部分適用」になるのでしょうか?
部分適用という使い方としては出てくるのですが、今回のようにコールバック関数に引数を渡すための
手法の名前がありましたら、詳しく調べたいので教えていただけないでしょうか。
>>424
ならない
この中でクロージャは 変数 i
function(i){...} だけで有効であるはずのローカルスコープの変数 i が、sampleが返してくるコールバック関数を実行した時にも参照される
これは i の内容が、function(i) が実行された時のスコープの環境を参照して決定されるため
この様に、それが定義された環境が記録されていて、実行時に参照される変数をクロージャという
ならない
この中でクロージャは 変数 i
function(i){...} だけで有効であるはずのローカルスコープの変数 i が、sampleが返してくるコールバック関数を実行した時にも参照される
これは i の内容が、function(i) が実行された時のスコープの環境を参照して決定されるため
この様に、それが定義された環境が記録されていて、実行時に参照される変数をクロージャという
>>424
sampleが返す関数がクロージャ
sample自体はクロージャではない
コールバック関数に引数を渡すための手法の名前は聞いたことがない
インラインの関数式でクロージャを使うほうが一般的なパターン
arr.forEach(function(v, i) {
v.addEventListener('click', () => console.log(i));
});
sampleが返す関数がクロージャ
sample自体はクロージャではない
コールバック関数に引数を渡すための手法の名前は聞いたことがない
インラインの関数式でクロージャを使うほうが一般的なパターン
arr.forEach(function(v, i) {
v.addEventListener('click', () => console.log(i));
});
部分適用は↓ここではちょっと違う解説をされてるけど
JSに限らずいろんな言語に共通する考え方
JSの場合は部分適用するのにクロージャを使うというだけ
http://ja.javascript.info/currying-partials
JSに限らずいろんな言語に共通する考え方
JSの場合は部分適用するのにクロージャを使うというだけ
http://ja.javascript.info/currying-partials
クロージャを使う?
意味不明 JSのユーザー定義関数はほぼ全てクロージャになるんだが
意味不明 JSのユーザー定義関数はほぼ全てクロージャになるんだが
>>425-426
ありがとうございます。
クロージャはsampleの中の変数なのですね。
勘違いしていたようです・・・・・・
インラインだと冗長な気がしてしまって、名前付けた関数を
使うようにしてみているのですが、質問しました引数渡せない問題など
色々詰まってしまってますw
リンク先でしっかり学んできます!
ありがとうございます。
クロージャはsampleの中の変数なのですね。
勘違いしていたようです・・・・・・
インラインだと冗長な気がしてしまって、名前付けた関数を
使うようにしてみているのですが、質問しました引数渡せない問題など
色々詰まってしまってますw
リンク先でしっかり学んできます!
引数にこだわらずにhtmlエレメントに値持たせてもいいんやで?
var sample = function(event) {
console.log(event.target.dataset.index);
};
var arr = [xxx, yyy, zzz];
arr.forEach(function(v, i) {
v.dataset.index = i;
v.addEventListener('click', sample);
});
var sample = function(event) {
console.log(event.target.dataset.index);
};
var arr = [xxx, yyy, zzz];
arr.forEach(function(v, i) {
v.dataset.index = i;
v.addEventListener('click', sample);
});
>>428
詳しく!
詳しく!
横レスだけど偏屈になると歪んだ考え方しちゃうのね
IEができたこととは全く意味合いが異なると思うけどw
完全に拗らせてるわ
IEができたこととは全く意味合いが異なると思うけどw
完全に拗らせてるわ
>>434
なるほど
なるほど
どう見ても現代の話しているやつに、なんで唐突に20年前の話振り始めたん?
コミュ障なの?
コミュ障なの?
ごめーん
俺は見ててちょっと懐かしくなっちゃっただけ
スレ違いすまぬ
俺は見ててちょっと懐かしくなっちゃっただけ
スレ違いすまぬ
ガイジってよく見るけど実はよくわかってない…
それを書くと俺はどんなダメージを負えばいいのん?
それを書くと俺はどんなダメージを負えばいいのん?
>>433
> だって他のブラウザに出来ないことができるのが良いって判断なんでしょ?
そんなこと一言も言ってないよね。お前の思い込みだよね。
特定のOS専用や非公開な仕様ではなく
オープンなウェブ技術を開発、採用ししているブラウザが最先端のブラウザ
> だって他のブラウザに出来ないことができるのが良いって判断なんでしょ?
そんなこと一言も言ってないよね。お前の思い込みだよね。
特定のOS専用や非公開な仕様ではなく
オープンなウェブ技術を開発、採用ししているブラウザが最先端のブラウザ
>>438
その通り。技術自体はIEは先進的だった。
良くないのはその技術がクローズドだった点
オープンな場で議論して仕様を策定するのではなく
MSの気分次第で実装されていた
Chrome or Edgeではそうじゃないので最先端のブラウザだし
それに追いつけないSafariはもはや過去のブラウザ
Safariのために特別な対応が必要だったり
Safari自体を非推奨にしなければならなくなってる
その通り。技術自体はIEは先進的だった。
良くないのはその技術がクローズドだった点
オープンな場で議論して仕様を策定するのではなく
MSの気分次第で実装されていた
Chrome or Edgeではそうじゃないので最先端のブラウザだし
それに追いつけないSafariはもはや過去のブラウザ
Safariのために特別な対応が必要だったり
Safari自体を非推奨にしなければならなくなってる
日本の与党と野党みたいなもんでしょ
本当であれば皆で方策を出し合って決めるのが理想だが
力ある者が思いついたアイディアに対して力なき者はただ難色を示すことが仕事になってるんでしょ
そこでとりあえずストップして内容を改めましょうかとか、
皆でミニマムなところからやってみて意見を出し合いましょうかとかなればいいんだけど、
意見が割れてるのね、じゃあそれぞれの方針でそれぞれでやって確かめていきましょとなって
結局は力ある者の意見が通ることになってるんでしょ
力関係が崩れている期間が長くなりすぎるとお互いに対する緊張感がなくなって
他所を見るより自分自身がどうやって行くかが重要になってくるからこうなってしまう
SafariもHTML5ムーブメント初期はデザイン方面などで色々とやる気だったけど
やる気だった方向性ではそんなに急には伸びそうになくて覇権は取れないし、
アプリプラットフォームとしてのWebという方向性ではビジネスの観点からやる気を出すことができない
だからこうなってしまうのは仕方がなかったこと
それとそもそもオープンオープンって言うけどさ
昔ながらの草案から段階踏んで比較的幅広いメンバーで議論を重ねて勧告へ向かっていくのとは違って
どっかのチームがGitHubに公開して、issueを受け付けとくね、聞くかどうかはしらんけど
とりあえず実装初めて使ってみながら変えていこう的なノリが最近多いのよ
公開ドキュメントによく鍵かかってたりもするし、リクエストしても承認されない
恣意的ではないかも知れないが、どうせ関係者しか関わってこないだろうという気持ちがある証拠だと思ってる
そういう機能をたくさん積んだブラウザが最先端のブラウザなんだろうか?
確かにプログラマとしてはまともで使える機能が多く乗った環境のほうが良い
でもユーザーにとっては例えばアクセシビリティが高いとか、セキュリティに拘ってるとかいうのでも
十分「最先端」のブラウザなんだよね
そんな今年1回使うかどうか分からない機能よりも、毎日の使い勝手のほうが重要なんだから
本当であれば皆で方策を出し合って決めるのが理想だが
力ある者が思いついたアイディアに対して力なき者はただ難色を示すことが仕事になってるんでしょ
そこでとりあえずストップして内容を改めましょうかとか、
皆でミニマムなところからやってみて意見を出し合いましょうかとかなればいいんだけど、
意見が割れてるのね、じゃあそれぞれの方針でそれぞれでやって確かめていきましょとなって
結局は力ある者の意見が通ることになってるんでしょ
力関係が崩れている期間が長くなりすぎるとお互いに対する緊張感がなくなって
他所を見るより自分自身がどうやって行くかが重要になってくるからこうなってしまう
SafariもHTML5ムーブメント初期はデザイン方面などで色々とやる気だったけど
やる気だった方向性ではそんなに急には伸びそうになくて覇権は取れないし、
アプリプラットフォームとしてのWebという方向性ではビジネスの観点からやる気を出すことができない
だからこうなってしまうのは仕方がなかったこと
それとそもそもオープンオープンって言うけどさ
昔ながらの草案から段階踏んで比較的幅広いメンバーで議論を重ねて勧告へ向かっていくのとは違って
どっかのチームがGitHubに公開して、issueを受け付けとくね、聞くかどうかはしらんけど
とりあえず実装初めて使ってみながら変えていこう的なノリが最近多いのよ
公開ドキュメントによく鍵かかってたりもするし、リクエストしても承認されない
恣意的ではないかも知れないが、どうせ関係者しか関わってこないだろうという気持ちがある証拠だと思ってる
そういう機能をたくさん積んだブラウザが最先端のブラウザなんだろうか?
確かにプログラマとしてはまともで使える機能が多く乗った環境のほうが良い
でもユーザーにとっては例えばアクセシビリティが高いとか、セキュリティに拘ってるとかいうのでも
十分「最先端」のブラウザなんだよね
そんな今年1回使うかどうか分からない機能よりも、毎日の使い勝手のほうが重要なんだから
>>449
それがダメなのはaddの時に渡すsample(i)とremoveの時に渡すsample(i)が
違うオブジェクトだからじゃないかな
removeに渡すのはaddと同じじゃないとダメだと思う
なのでaddの時に引数をキーにしたMap作っとくとか?
質問とは関係ないけど今はvarじゃなくてletとconst使う方がいいと思う
(略)
const map = new Map();
Object.keys(test).forEach(function(v, i) {
const func = sample(i)
test[v].addEventListener('click', func);
map.set(i, func)
});
var removeEvent = function() {
Object.keys(test).forEach(function(v, i) {
const func = map.get(i);
test[v].removeEventListener('click', func);
map.delete(i);
});
};
(略)
動作確認はしてない
それがダメなのはaddの時に渡すsample(i)とremoveの時に渡すsample(i)が
違うオブジェクトだからじゃないかな
removeに渡すのはaddと同じじゃないとダメだと思う
なのでaddの時に引数をキーにしたMap作っとくとか?
質問とは関係ないけど今はvarじゃなくてletとconst使う方がいいと思う
(略)
const map = new Map();
Object.keys(test).forEach(function(v, i) {
const func = sample(i)
test[v].addEventListener('click', func);
map.set(i, func)
});
var removeEvent = function() {
Object.keys(test).forEach(function(v, i) {
const func = map.get(i);
test[v].removeEventListener('click', func);
map.delete(i);
});
};
(略)
動作確認はしてない



類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.141 + (1001) - [100%] - 2019/9/22 23:15
- + JavaScript の質問用スレッド vol.142 + (984) - [97%] - 2020/8/27 19:15
- + JavaScript の質問用スレッド vol.131 + (1004) - [97%] - 2018/3/7 13:30
- + JavaScript の質問用スレッド vol.121 + (1001) - [97%] - 2015/1/1 18:30
- + JavaScript の質問用スレッド vol.121 + (1001) - [97%] - 2022/11/29 16:30
- + JavaScript の質問用スレッド vol.131 + (1000) - [97%] - 2017/1/25 8:01
- + JavaScript の質問用スレッド vol.144 + (288) - [97%] - 2020/5/17 20:00
- + JavaScript の質問用スレッド vol.111 + (1001) - [97%] - 2013/11/4 6:00
- + JavaScript の質問用スレッド vol.142 + (926) - [97%] - 2019/12/23 13:15
- + JavaScript の質問用スレッド vol.143 + (753) - [97%] - 2020/4/19 5:00
- + JavaScript の質問用スレッド vol.101 + (1001) - [97%] - 2012/7/16 14:15
- + JavaScript の質問用スレッド vol.140 + (1001) - [97%] - 2019/9/19 10:45
- + JavaScript の質問用スレッド vol.102 + (1001) - [95%] - 2012/9/11 17:30
- + JavaScript の質問用スレッド vol.123 + (966) - [95%] - 2020/10/20 2:30
- + JavaScript の質問用スレッド vol.122 + (116) - [95%] - 2018/5/2 18:30
- + JavaScript の質問用スレッド vol.122 + (1004) - [95%] - 2015/2/14 4:45
- + JavaScript の質問用スレッド vol.100 + (1001) - [95%] - 2012/6/13 22:46
トップメニューへ / →のくす牧場書庫について