私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.142 +
JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
>>400
ふつうのfunction関数もアロー関数もスコープは関数スコープとブロックスコープを作るよ。
だから作るスコープの観点では、両者に違いはない。
もし、function関数とアロー関数に構文以上の違いは無いんですかという質問だったなら話は別だが。
ふつうのfunction関数もアロー関数もスコープは関数スコープとブロックスコープを作るよ。
だから作るスコープの観点では、両者に違いはない。
もし、function関数とアロー関数に構文以上の違いは無いんですかという質問だったなら話は別だが。
>>402
勘違いしがちだけどthisは変数じゃないんだよ
なので変数のスコープと並べて考えちゃいかん
実際むしろ逆で
thisを持つスコープともたないスコープがあるんだが
いきなりそこから理解するのも難しいと思うので
とりあえず最初は、大雑把ですまんが
スコープや状況に応じてバインドされるものが変わるもの
程度に考えてみるのがいいかもしれない
そんでthisを使い倒して理解できた気になったら
改めてECMA Scriptの仕様書を読むと
より深く理解できると思う
勘違いしがちだけどthisは変数じゃないんだよ
なので変数のスコープと並べて考えちゃいかん
実際むしろ逆で
thisを持つスコープともたないスコープがあるんだが
いきなりそこから理解するのも難しいと思うので
とりあえず最初は、大雑把ですまんが
スコープや状況に応じてバインドされるものが変わるもの
程度に考えてみるのがいいかもしれない
そんでthisを使い倒して理解できた気になったら
改めてECMA Scriptの仕様書を読むと
より深く理解できると思う
>>406
function f() {
console.log('this in f:', this);
}
function g() {
'use strict';
console.log('this in g:', this);
}
f(); //=> this in f: グローバルオブジェクト ( ブラウザ環境なら window )
(0, f)(); //=> this in f: グローバルオブジェクト ( ブラウザ環境なら window )
g(); //=> 'this in g: undefined
(0, g)(); //=> 'this in g: undefined
var obj = {f, g};
obj.f(); //=> this in f: obj
(0, obj.f)(); //=> this in f: グローバルオブジェクト ( ブラウザ環境なら window )
obj.g(); //=> 'this in g: obj
(0, obj.g)(); //=> 'this in g: undefined
ガンマ演算子の神業。
function f() {
console.log('this in f:', this);
}
function g() {
'use strict';
console.log('this in g:', this);
}
f(); //=> this in f: グローバルオブジェクト ( ブラウザ環境なら window )
(0, f)(); //=> this in f: グローバルオブジェクト ( ブラウザ環境なら window )
g(); //=> 'this in g: undefined
(0, g)(); //=> 'this in g: undefined
var obj = {f, g};
obj.f(); //=> this in f: obj
(0, obj.f)(); //=> this in f: グローバルオブジェクト ( ブラウザ環境なら window )
obj.g(); //=> 'this in g: obj
(0, obj.g)(); //=> 'this in g: undefined
ガンマ演算子の神業。
カンマ演算子ってminifyしたコードではよく使われてるけど
自分で意識して使ったことなかったわ
自分で意識して使ったことなかったわ
値として観測されると重ね合わせが壊れて情報が失われるってことでしょ?
>>409
横からだが勉強になった
横からだが勉強になった
>>409
疑問に思ったのはそこじゃなかったんだが勉強になった
ただthisのbindingを知るという目的だと
コールサイトでのレシーバの有無だけで十分理解できるので
ちょっと実装の詳細に入り込みすぎてる気もした
You don’t know JSでthisのbindルールが
以下の4ルールでまとめられてて個人的にはわかりやすかったかな
1. new binding
2. implicit binding (called with context)
3. explicit binding (call/apply)
4. default binding (global/undefined)
疑問に思ったのはそこじゃなかったんだが勉強になった
ただthisのbindingを知るという目的だと
コールサイトでのレシーバの有無だけで十分理解できるので
ちょっと実装の詳細に入り込みすぎてる気もした
You don’t know JSでthisのbindルールが
以下の4ルールでまとめられてて個人的にはわかりやすかったかな
1. new binding
2. implicit binding (called with context)
3. explicit binding (call/apply)
4. default binding (global/undefined)
Ruby は一々、self を渡さなくても良いように、実装で頑張った
JavaScript のthis は、window を指したりする場合があるなど、ややこしいから、
jQuery, Haxe などでは、this の挙動が変えられた
JavaScript のthis は、window を指したりする場合があるなど、ややこしいから、
jQuery, Haxe などでは、this の挙動が変えられた
むしろ内部仕様を理解しようとせずパターンで覚えようと言う方が無理がある
> functionと書いた場合、第ゼロ引数とでも呼ばれるものがあると考えればいい
> つまり function foo(this, a, b, c)
どういうことかと言うと
function foo(this, a, b, c) {
$(element).on('click', function(this, event) {
// thisはなにか?
});
}
こういうこと。この書き方でthisが何かというと、そりゃ
呼び出し元が渡したオブジェクトに決まってるだろ?
引数にあるんだから当たり前。渡す方は自由にthisの内容を変えて渡せる
一方、アロー関数はfunctionがないのだからthisは存在しない
function foo(this, a, b, c) {
$(element).on('click', event => { } );
}
その場合のthisはfoo関数に渡されたthisに決まってるだろ?
こういう話。thisは全てこれで説明できる。
内部の実装とか仕様とか考えてないで、一番単純な方法で理解しよう
> つまり function foo(this, a, b, c)
どういうことかと言うと
function foo(this, a, b, c) {
$(element).on('click', function(this, event) {
// thisはなにか?
});
}
こういうこと。この書き方でthisが何かというと、そりゃ
呼び出し元が渡したオブジェクトに決まってるだろ?
引数にあるんだから当たり前。渡す方は自由にthisの内容を変えて渡せる
一方、アロー関数はfunctionがないのだからthisは存在しない
function foo(this, a, b, c) {
$(element).on('click', event => { } );
}
その場合のthisはfoo関数に渡されたthisに決まってるだろ?
こういう話。thisは全てこれで説明できる。
内部の実装とか仕様とか考えてないで、一番単純な方法で理解しよう
こうやってthisは引数で呼び出し側が渡す値って理解すれば、
Javaなどの言語とJavaScriptはthisが全く同じであることが理解できる
違うのはthisではなく呼び出し側なんだよ。
function foo(this, a, b, c) { } という関数をJavaScriptで呼び出す場合
一般的には obj.foo(a, b, c) という呼び出し方をする。
このfooのドットの左側、これがthisとして渡される。
これはJavaなどでも同じなんだよ
な?thisの仕様は同じだろ?
違いはJavaScriptは。obj.foo だけではなく obj.call や obj.apply で
thisを変更して呼び出す方法があるってこと
Javaなどの言語とJavaScriptはthisが全く同じであることが理解できる
違うのはthisではなく呼び出し側なんだよ。
function foo(this, a, b, c) { } という関数をJavaScriptで呼び出す場合
一般的には obj.foo(a, b, c) という呼び出し方をする。
このfooのドットの左側、これがthisとして渡される。
これはJavaなどでも同じなんだよ
な?thisの仕様は同じだろ?
違いはJavaScriptは。obj.foo だけではなく obj.call や obj.apply で
thisを変更して呼び出す方法があるってこと
未経験からバックエンドエンジニアは無理で、フロントエンドからやるべきなんですか?
thisは呼び出し元が渡すと言うのは良い解釈
実際の所は関数呼び出し時にthisArgが何になるかはReference値に依存していて
呼び出し方や呼び出し元などが本質的に結びついているわけではないが、
Reference値を壊さずに関数呼び出しを行う形は限られてくるので
superなど一部を除いて実際コード上の位置関係と形で考えることができる
実際の所は関数呼び出し時にthisArgが何になるかはReference値に依存していて
呼び出し方や呼び出し元などが本質的に結びついているわけではないが、
Reference値を壊さずに関数呼び出しを行う形は限られてくるので
superなど一部を除いて実際コード上の位置関係と形で考えることができる
thisが難しいのは状況によって何がthisとして渡されるかが様々に変化するってところだからな
>>424,425の説明は
何がthisとして渡されるのかは理解してるけれど
アロー関数のthisが理解できませんという激レアさん以外に意味あるのかな
>>424,425の説明は
何がthisとして渡されるのかは理解してるけれど
アロー関数のthisが理解できませんという激レアさん以外に意味あるのかな
>>424
なぜ、アローの方が簡単なのか良くわかる、素晴らしい説明!
JavaScript の場合、非同期処理をよく使うから、
上の方は、外側・内側の関数のコンテキストが異なることが多い
だから、this が鬼門
jQuery は、that = this みたいに書いてるけど、これが分かりやすい
なぜ、アローの方が簡単なのか良くわかる、素晴らしい説明!
JavaScript の場合、非同期処理をよく使うから、
上の方は、外側・内側の関数のコンテキストが異なることが多い
だから、this が鬼門
jQuery は、that = this みたいに書いてるけど、これが分かりやすい
かといってthisを説明するのに
さらに分からないReference値なるものを
定義も示さず連呼するのに比べれば
わかりやすく説明しようという努力の分だけマシだと思う
さらに分からないReference値なるものを
定義も示さず連呼するのに比べれば
わかりやすく説明しようという努力の分だけマシだと思う
自分が分からないことを自分で勉強しようとしない人にはこのスレは向かないね
物事をわかりやすく説明できるのはその本質を理解してる人だけ
説明がわかりにくい人はその物事を真には理解していない
説明がわかりにくい人はその物事を真には理解していない
って言うけど違うよね。
それで分かったつもりになっちゃって僕は原子炉に詳しいんだ爆発だしw
それで分かったつもりになっちゃって僕は原子炉に詳しいんだ爆発だしw
分かりやすく説明できる <- 説明能力
物事をものすごく理解していても説明能力に欠ければ分かりやすい説明はできない
例えばすーぱーぷろぐらまー(宇宙人)が宇宙語で人間にがんばって説明しても理解されない
辞は達するのみ
そして相手がチンパン並みの理解力ならいくら分かりやすい説明しても無駄
結局は双方のバランスが大事
物事をものすごく理解していても説明能力に欠ければ分かりやすい説明はできない
例えばすーぱーぷろぐらまー(宇宙人)が宇宙語で人間にがんばって説明しても理解されない
辞は達するのみ
そして相手がチンパン並みの理解力ならいくら分かりやすい説明しても無駄
結局は双方のバランスが大事
>>437
そんなにイライラしなくてもw
そんなにイライラしなくてもw
知らない人に対して、知らない人が知らないであろう言葉で説明するのは未熟者
自分がちゃんと理解してないから説明できない
自分がちゃんと理解してないから説明できない
そうした説明では相手に本当に理解させることはできない。
仮に相対性理論をゴルフで説明できたところで、相手は木星まで光速の70%で行って戻ってきたときの時間の遅れを計算できるようにはならない。理解したつもりにさせられてるだけだからだ。
こんなものは詐欺師のテクニックや催眠術みたいなもの。
そうして僕は原子力に詳しいんだ爆発が起きる。
知ったか量産の害悪でしかない。
仮に相対性理論をゴルフで説明できたところで、相手は木星まで光速の70%で行って戻ってきたときの時間の遅れを計算できるようにはならない。理解したつもりにさせられてるだけだからだ。
こんなものは詐欺師のテクニックや催眠術みたいなもの。
そうして僕は原子力に詳しいんだ爆発が起きる。
知ったか量産の害悪でしかない。
相手に本当に理解させる必要なんてないからね
技術者は正確性を重要視するあまり聞き手にとって不要な詳細を語りたがる
相手を見て情報の取捨選択が出来ない
常に実装の詳細がダダ漏れの設計と同じ
技術者は正確性を重要視するあまり聞き手にとって不要な詳細を語りたがる
相手を見て情報の取捨選択が出来ない
常に実装の詳細がダダ漏れの設計と同じ
そうした説明では相手に本当に理解させることはできない。
そういって数学とは何たるかを小学一年生に語るのであった。
そういって数学とは何たるかを小学一年生に語るのであった。
「泥団子と泥団子を合わせるとひとつの泥団子になるだろ?だから1足す1は1なんだ!」
>>448
そうですね!
そうですね!
x+yとa+bが等しい場合に前者のif節は実行されるが後者のif節は実行されない。
if( !( x+y<=a+b ))とif( x+y>a+b )または
if( !( x+y<a+b ))とif( x+y>=a+b )なら、
論理的には同じ。
if( !( x+y<=a+b ))とif( x+y>a+b )または
if( !( x+y<a+b ))とif( x+y>=a+b )なら、
論理的には同じ。
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.142 + (926) - [100%] - 2019/12/23 13:15
- + JavaScript の質問用スレッド vol.141 + (881) - [97%] - 2021/4/19 9:00
- + JavaScript の質問用スレッド vol.102 + (1001) - [97%] - 2012/9/11 17:30
- + JavaScript の質問用スレッド vol.112 + (1001) - [97%] - 2013/11/27 16:46
- + JavaScript の質問用スレッド vol.132 + (1001) - [97%] - 2018/4/19 11:00
- + JavaScript の質問用スレッド vol.122 + (116) - [97%] - 2018/5/2 18:30
- + JavaScript の質問用スレッド vol.122 + (1004) - [97%] - 2015/2/14 4:45
- + JavaScript の質問用スレッド vol.140 + (1001) - [97%] - 2019/9/19 10:45
- + JavaScript の質問用スレッド vol.141 + (1001) - [97%] - 2019/9/22 23:15
- + JavaScript の質問用スレッド vol.143 + (753) - [97%] - 2020/4/19 5:00
- + JavaScript の質問用スレッド vol.144 + (288) - [97%] - 2020/5/17 20:00
- + JavaScript の質問用スレッド vol.123 + (966) - [95%] - 2020/10/20 2:30
- + JavaScript の質問用スレッド vol.115 + (1001) - [95%] - 2014/5/29 16:16
- + JavaScript の質問用スレッド vol.121 + (1001) - [95%] - 2015/1/1 18:30
- + JavaScript の質問用スレッド vol.121 + (1001) - [95%] - 2022/11/29 16:30
- + JavaScript の質問用スレッド vol.120 + (1002) - [95%] - 2014/11/8 1:15
- + JavaScript の質問用スレッド vol.119 + (1002) - [95%] - 2014/10/3 15:30
トップメニューへ / →のくす牧場書庫について