回答編集履歴

2

文章を調整

2019/01/24 05:08

投稿

miyabi-sun
miyabi-sun

スコア21158

test CHANGED
@@ -48,24 +48,18 @@
48
48
 
49
49
  結論コードが出てこない限り回答者側としては答えようがありません。
50
50
 
51
+ 恐らく質問文は機密情報なので端折ったコードしか提供出来なかったという事情がありそうなので、もしそうなら詰みです。
52
+
51
53
 
52
54
 
53
55
  JavaScriptのthisは状況に応じて4パターンの意味合いに変化するクソオブクソで、
54
56
 
55
- thisが原因の不具合非常に不具合を出たくないな、thisを使うなとか言いようがありません
57
+ thisが原因のバグ極めて多く、多数のエンジニアが苦れてきま
56
58
 
57
- ES2015以降に追加された機能は極力thisやスコープに依存しないコードを書いていける修正ばかりになっています。
59
+ ES2015以降に追加された機能は極力thisに依存しないコードを書いていける修正ばかりになっています。
58
-
59
-
60
-
61
- 「thisを書いて不具合が出て辛いけど頑張る」ならまだわかりますが、
62
-
63
- 「thisを書いて不具合が出た、teratail助けて」じゃ話になりません。
64
-
65
- もう既に2019年なのでthisに依存するコードを書くのは自己責任の範疇でしょう。
66
60
 
67
61
 
68
62
 
69
63
  thisの扱いなら[JavaScript Ninjaの極意](https://www.amazon.co.jp/dp/B00ESXY9MA/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)が詳しかったと思うので、
70
64
 
71
- 構造を変えられないならthisをどう扱うか勉強してみてください。
65
+ 構造を変えられないならthisをどう扱うか勉強してみてください。

1

10中8〜9thisが原因なのでそれ用に絞った。

2019/01/24 05:08

投稿

miyabi-sun
miyabi-sun

スコア21158

test CHANGED
@@ -38,52 +38,34 @@
38
38
 
39
39
 
40
40
 
41
- 実際プロジェクトのコードはた別の状況で、
41
+ というか質問文カンマは何?という話で、こままベタッとピペすると構文エラで動きせん。
42
42
 
43
- 簡略化し時に駄目な箇所抜け思い通りに動作するコードになってしまったのは無いかと思います。
43
+ 何を端折っも重要です。
44
44
 
45
45
 
46
46
 
47
- JavaScript代入は「参照値渡」とい他言語使いからすると一風変わった代入方法をとっています
47
+ 恐らくthis周り解決が上手くできてないう。
48
48
 
49
- その考えでいうと`post_data.str`を変更しても`str`変数の中身は代わりませんし、
50
-
51
- `post_data.arr`を変更しても「参照の値」変わるだけなのでarrが変化する事はありません。
49
+ 結論コードが出てこない限り回答者側としては答えようがありません。
52
50
 
53
51
 
54
52
 
55
- りどっか考え違して
53
+ JavaScriptのthis状況に応じて4パターンの意味合に変化すクソオブクソで
56
54
 
57
- 本番で動かしたいコード相当剥離ているのどちらかだと思いま
55
+ thisが原因の不具合は非常に多いく不具合を出したくななら、thisを使うなとしかようがありせん
58
56
 
59
- 本番のコードが公開出来ないなら、「参照の値渡し」に関し調査してみてください。
57
+ ES2015以降に追加された機能は極力thisやスコープに依存しないコードを書いていける修正ばかりにています
60
58
 
61
59
 
62
60
 
63
- ---
61
+ 「thisを書いて不具合が出て辛いけど頑張る」ならまだわかりますが、
62
+
63
+ 「thisを書いて不具合が出た、teratail助けて」じゃ話になりません。
64
+
65
+ もう既に2019年なのでthisに依存するコードを書くのは自己責任の範疇でしょう。
64
66
 
65
67
 
66
68
 
67
- う訳で質問者さんてる事を解釈すると、
69
+ thisの扱なら[JavaScript Ninja極意](https://www.amazon.co.jp/dp/B00ESXY9MA/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)が詳しか思うので
68
70
 
69
- 参照を切らずにconstで宣言した配列を初期化したいんじゃないかな?と思いますのでその方法だけ紹介して締めます。
70
-
71
-
72
-
73
- `arr.length = 0`使ってください。
71
+ 構造を変えられないならthisどう扱うかを勉強しみてください。
74
-
75
- これはJavaScriptのイディオムで配列が持っている要素を全て捨てるという効果があります。
76
-
77
- その余波でpost_data.arrも空の配列に変化するはずです。
78
-
79
-
80
-
81
- ```JavaScript
82
-
83
- const arr = ['a','b','c','d','e','f'];
84
-
85
- arr.length = 0;
86
-
87
- console.log(arr); // []
88
-
89
- ```