- 最初のthisはobjを二番目のthisはcatを指し示していると思うのですが、合ってますでしょうか。
- コンソールにはどちらも「Object」とその定義しか表示されません。具体的にオブジェクトの参照が
格納されている変数を表示する方法はありますでしょうか。
よろしくお願い致します。
var obj = { hoge: function() { console.log(this); } } obj.hoge(); // 結果 Object { hoge: hoge()} var cat = { name: "ラム", func: function(){ return this; } }; console.log(cat.func()); // 結果 Object { name: "ラム", func: func()}
現状の定義だと変数は持ってませんね
「格納されている変数」ということであれば、難しいと思います。
同じオブジェクトを複数の変数に代入することも可能なので。
m.ts10806様、Lhankor_Mhy様
返信ありがとうございます。
そうですか2の質問に無理があったということが分かりました。
「変数を表示」して何を実現したいのでしょうか。
think49様
thisが何を指し示しているか確認したいです。
> thisが何を指し示しているか確認したいです。
thisは変数ではありません。
質問の意図が回答者に正しく伝わっていないように思われます。
全体的なコメントの流れから「2.」は「1.」を確認する為に「thisが指し示しているもの」を確認したい、と解釈しました。
具体的には、「thisが指し示しているもの」と「変数が指し示しているもの」の等価性を確認すれば、目的を達成できると考えました。
「変数を表示」という文は抽象的であり、「変数の何を表示するのか」「変数名も含めて表示するのか」等が具体化されていません。
初心者故に言葉の選択が難しいのだと思いますが、質問の「目的」を詳しく書くようにすると、質問の意図が正しく伝わりやすいと思います。
> 具体的にオブジェクトの参照が格納されている変数を表示する方法はありますでしょうか。
変数を一つ一つ確認していくくらいしかないでしょう。
cat === cat.func()
目的によってはループや Map が役立つと思います。
「何のために変数を確認したいのか」を追記すれば、より具体的な回答がつく可能性があります。
言うまでもないことですが、「何のために」は「〇〇のため」と一言で表すのではなく、相手に伝わるよう言葉を尽くす必要があります。
think49様・ Zuishin様
返信ありがとうございます。
知識と言葉が不足しており分かりにくい質問になってしまいました。
今後はもう少し言葉を吟味して投稿します。
回答2件
あなたの回答
tips
プレビュー