新規投稿
フォローする

Javascriptでフィールド値を変更する際のreturnの動作について

変更されたテーブル行の情報を取得して合計を変更してみよう」を参考にしています。

問題なく動作することは確認できたのですが、なぜ動作するのか理解できない点があるので教えていただけないでしょうか?

totalという変数を定義して、そこに計算結果を代入しています。

その後、特に何の処理もすることなく「return event;」で終わっています。

どこかでフィールドコード「合計」とtotalを紐付ける処理をしなければkintoneに反映されないと思うのですが、どこで紐付けが行われたのでしょうか?

初歩的な質問ですが、よろしくお願いします。

 

 

 

 

 

0

2件のコメント

Avatar
cybozu Development team

> どこかでフィールドコード「合計」とtotalを紐付ける処理をしなければkintoneに反映されないと思うのですが、どこで紐付けが行われたのでしょうか?

おっしゃるとおりです、鋭い洞察だと思います。

var table_row = event.changes.row;
var total = table_row.value['合計'];
total.value = price * number;

return event;

などとやって、変数に格納したりしていますが、実は、total.valueの値を変更する際、
event.changes.row.total.valueが書き換わっています。なので変数にいれないで下記のようにやってるのと同じです。

event.changes.row.合計.value = price * number;

return event;

↑こうみると、return eventがtotalと紐づくのはイメージとしてわかるとは思います。

---

var table_row = event.changes.row;

これは、直感的には「event.changes.rowの値」を「コピーしてtable_rowに格納する」という風にも見えますが、実際には値そのものがコピーがされているわけではないということです。下記がイメージ図です

 

 

2
Avatar
kino

村濱さん、解説いただきましてありがとうございます。
丁寧に図解いただいたので理解することができました。
その後も深堀りしていくと、オブジェクト型を返す場合は位置情報を返すことが分かり、完全に理解することができました。
https://www.javadrive.jp/javascript/var/index7.html

プログラミングには縁がなかったのですが、kintoneをきっかけとして少しずつ勉強しています。
こうやって初歩的なことを解説いただけるコミュニティーがあって助かっています。
ありがとうございました!

0
サインインしてコメントを残してください。