[解決済み] VueJS: なぜ "this "は未定義なのですか?
2023-06-09 16:25:03
質問
コンポーネントを作成する際に Vue.js .
を参照すると
this
のいずれかに
ライフサイクルフック
(
created
,
mounted
,
updated
など) と評価されます。
undefined
:
mounted: () => {
console.log(this); // logs "undefined"
},
同じことが、私の計算されたプロパティの内部でも起こっています。
computed: {
foo: () => {
return this.bar + 1;
}
}
以下のようなエラーが出ます。
Uncaught TypeError: 未定義のプロパティ 'bar' を読み取ることができません。
なぜ
this
に評価されるのでしょうか?
undefined
と評価するのでしょうか?
どのように解決するのですか?
これらの例では、どちらも
矢印機能
() => { }
を束ねる
this
をVueのインスタンスとは異なるコンテキストにバインドします。
のように のドキュメントによると :
インスタンスのプロパティやコールバックで矢印関数を使わない(例えば
vm.$watch('a', newVal => this.myMethod())
). 矢印関数は親コンテキストに束縛されるからです。this
は期待するようなVueのインスタンスにはならずthis.myMethod
は未定義になります。
への正しい参照を得るために
this
をVueのインスタンスとして正しく参照するには、通常の関数を使用します。
mounted: function () {
console.log(this);
}
また、この他に ECMAScript 5 のショートハンド を関数のために使うこともできます。
mounted() {
console.log(this);
}
関連
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] JavaScriptでNULL、未定義、空白の変数をチェックする標準的な関数はありますか?
-
[解決済み] 変数が「未定義」または「NULL」であるかどうかを判断するにはどうすればよいですか?
-
[解決済み] セレクタの子を取得する方法は?
-
[解決済み] コールバック内で正しい `this` にアクセスする方法
-
[解決済み】未定義のオブジェクトプロパティを検出する
-
[解決済み】Vue.Jsの計算されたプロパティでパラメータを渡すことはできますか?
-
[解決済み] 配列からオブジェクトを生成する
-
[解決済み] JavaScriptで:hoverのCSSプロパティを変更する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JavaScriptで、ある文字列が別の文字列の中に出現するすべてのインデックスを見つけるにはどうすればよいですか?
-
[解決済み] WebStormで未解決の変数が大量にある場合の警告に対処する方法は?
-
[解決済み] Javascript / jQueryでAndroid端末を検出する。
-
[解決済み] Chromeの拡張機能開発にWebStormを使用するにはどうすればよいですか?
-
[解決済み] TypeScriptプロジェクトで既存のC#クラス定義を再利用する方法
-
[解決済み] javascriptで文字列から関数を作成する方法はありますか?
-
[解決済み] Promise : then vs then + catch [重複].
-
[解決済み] Prototypeを使ってtextareaを自動サイズ調整するには?
-
[解決済み] Node.jsのES6クラスをrequireで作る
-
[解決済み] JavaScript で css プロパティを使用して HTML 要素の背景色を設定する方法