4D オブジェクト型変数のプロパティ名は大文字小文字を識別する

オブジェクト型変数のドットノーテーションでは、プロパティ名(トークンメンバー名とも呼ぶらしい)の大文字小文字を区別するので注意。4Dの世界では大文字小文字は区別されないのがフツウだが、オブジェクト記法はJavaScriptの方法にしているようだ。

顧客情報を取得するメソッドで

$objKO.NAME:=[KOKYAKU]KO_NAME

のように「NAME」プロパティに顧客名を代入していた。

顧客情報を取得するメソッド

そのオブジェクト$objKOを使うとき、プロパティを指定して顧客名を別のオブジェクトに代入。

1)$objRE.ko_name:=$objKO.name

2)$objRE.ko_name:=$objKO.NAME

1)のように記述して失敗。正解は2)。

左辺のko_nameは元々小文字で定義していたので、右辺も小文字だろうと勘違いしてしまったという失敗。.nameというメンバー名をどこかで使ったのだろうか、入力補助のポップアップには.nameも.NAMEもどちらも表示された。このときは大文字小文字は区別されない。

上のメソッドを呼び出している親メソッド

今後は、ドット以降を小文字で統一することにした。

出典:

4D v18 オブジェクト記法の使用