回答編集履歴

2

追記

2018/11/27 15:46

投稿

NozomuIkuta
NozomuIkuta

スコア1260

test CHANGED
@@ -38,9 +38,9 @@
38
38
 
39
39
  price(oldVal, newVal) {
40
40
 
41
- // oldVal: 変更前の値
41
+ // oldVal: 変更前の値 -> 間違い。こっちがnewVal(追記参照)
42
42
 
43
- // newVal: 変更後の値
43
+ // newVal: 変更後の値 -> 間違い。こっちがoldVal(追記参照)
44
44
 
45
45
  // returnしたものが最終的にpriceとして設定・利用される -> 間違い(追記参照)
46
46
 
@@ -73,3 +73,9 @@
73
73
 
74
74
 
75
75
  間違った情報を回答してしまい、すみません。
76
+
77
+
78
+
79
+ ## 追記(2018/11/28)
80
+
81
+ たびたびすみません。`watch`の`price`関数の引数が、新旧逆でした。

1

内容修正

2018/11/27 15:46

投稿

NozomuIkuta
NozomuIkuta

スコア1260

test CHANGED
@@ -42,7 +42,7 @@
42
42
 
43
43
  // newVal: 変更後の値
44
44
 
45
- // returnしたものが最終的にpriceとして設定・利用される
45
+ // returnしたものが最終的にpriceとして設定・利用される -> 間違い(追記参照)
46
46
 
47
47
  }
48
48
 
@@ -51,3 +51,25 @@
51
51
  });
52
52
 
53
53
  ```
54
+
55
+
56
+
57
+ ## 追記(2018/11/28)
58
+
59
+ 時間がたってしまっているのですが、間違ったことを書いていたので訂正します。
60
+
61
+ 上記ソースコードの「returnしたものが最終的にpriceとして設定・利用される」は間違いです。
62
+
63
+ `watch`関数の返り値は何にも利用されません。
64
+
65
+
66
+
67
+ ただ、コールバックの中で`this.price = xxx`のようにデータを変更すれば、同じイベントループ内で起こった変更として利用されます。
68
+
69
+
70
+
71
+ [サンプル](https://jsfiddle.net/NozomuIkuta/kdzxny8j/2/)
72
+
73
+
74
+
75
+ 間違った情報を回答してしまい、すみません。