😇

無名関数内でNuxt.jsのthisを利用したい。

2021/09/08に公開

これって正しいのでしょうかという疑問もかねて。むりやりthisを使ってますがいいんでしょうか。詳しい方、ご教授願います。また、アロー関数だったらどうするのっていう。(アロー関数にいまだになれないから使ってない人)

これダメ

sample.vue
<script>
  setTimeout(function() {
    this.data = false;
  }, 1000);
</script>

JavaScriptだったら

sample.vue
<script>
  setTimeout(function() {
    this.data = false;
  }.bind(this), 1000);
</script>

.bind(this)で終了。

TypeScriptだったら

sample.vue
<script lang="ts">
  const me = this
  setTimeout(function() {
    me.data = false;
  }, 1000);
</script>

うーん、無理矢理感。

あってんのかな

汚くみえないから現状これで調べる気もないですが、もっといい方法があれば...

Discussion