0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

あれ、なんか$(this)が動かないな...

Posted at

大学院生の備忘録シリーズ 第一弾

JS初心者が調子乗ってアロー関数を使っていた時に起きたエラーとその対応です.

問題のコードはこちら

sample
$('select').on('change', ()=>{
    let hoge= $(this).val()
    Function(hoge)
})

実行すると

Cannot read properties of undefined (reading 'toLowerCase')

なんだこれ?
となったのでいつものごとく先人たちの記事を調べてまずたどり着いた記事がこれ

Cannot read property 'toLowerCase' of undefinedのとき何を確認すべきか?

なにか定義されていないらしい.でも色々修正してもどうにもならない......

いろいろ時間をかけてたどり着いたのがアロー関数()=>{}といつもの関数function(){}の違いを解説していただいている次の記事

JavaScript: 通常の関数とアロー関数の違いは「書き方だけ」ではない。異なる性質が10個ほどある。

結論

$(this)はアロー関数()=>{}では定義されていない!
さらに外側に定義されていればそれがスコープされるらしい.
仕様なのでfunction(){}の方に直そうね.とのこと

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?