teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

軽微な変更

2019/04/24 07:46

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア37481

answer CHANGED
@@ -18,7 +18,7 @@
18
18
  なので、ご提示のコードだけではthisが何であるかはわからないと思います。
19
19
 
20
20
  ### 質問の編集にあわせて追記
21
- 元になるモジュールなどが不明のため、それらは全然違うものだからという回答になってしまうかと思います。(なお、アロー式ではなく関数式とのことなので、`this`はグローバルオブジェクトになりません)
21
+ 元になるモジュールなどが不明のため、それらは全然違うものだからという回答になってしまうかと思います。(なお、アロー式ではなく関数式とのことなので、`this`はグローバルオブジェクトになりません)
22
22
 
23
23
  ```js
24
24
  var obj = {

1

質問の編集にあわせて追記

2019/04/24 07:46

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア37481

answer CHANGED
@@ -15,4 +15,33 @@
15
15
  });
16
16
  ```
17
17
  枝葉を払ってみたところ、thisはグローバルオブジェクトでした。
18
- なので、ご提示のコードだけではthisが何であるかはわからないと思います。
18
+ なので、ご提示のコードだけではthisが何であるかはわからないと思います。
19
+
20
+ ### 質問の編集にあわせて追記
21
+ 元になるモジュールなどが不明のため、それらは全然違うものだから、という回答になってしまうかと思います。(なお、アロー式ではなく関数式とのことなので、`this`はグローバルオブジェクトになりません)
22
+
23
+ ```js
24
+ var obj = {
25
+ value: 0,
26
+ method: function(){}
27
+ }
28
+
29
+ var sendToMethod = function(f){
30
+ obj.method = f;
31
+ obj.method();
32
+ }
33
+
34
+ function main(){
35
+ let value = 100;
36
+ sendToMethod(function(){
37
+ this.value = 1;
38
+ });
39
+ console.log(value); // 100
40
+ console.log(this.value); // undefined
41
+ console.log(obj.value); // 1
42
+ }
43
+
44
+ main();
45
+ ```
46
+
47
+ 補足いただいた「メリットは特に見当たらない」とお考えになる理由をお示しいただけますと、もう少しお役に立てる回答ができるかもしれません。