New object, は、オブジェクトを初期化するための 4D の新しいコマンドです。このコマンドは、空のオブジェクトを作成するか、いくつかの初期プロパティと値を持つオブジェクトを作成することができます。OB SET は、いくつかの状況で不要になりつつあり、New object で十分です。
New object また、 や コマンドのように、オブジェクトをパラメータとして要求する 4D コマンドに直接渡すこともできます。Get database measures GRAPH
この新しいコマンドは、多くの状況で 4D コードの書き方を変えます。New object はオブジェクトを作成し、それへの参照を返します。これにより、コードの柔軟性が高まります。 このコマンドは、オブジェクトに関連する一連の新機能の最初のものです …ご期待ください。
例1
この最初の例では、空のオブジェクトを作成する方法を説明します。以前の 4D では、これを行うには、JSON Parse(“{}”) を使うしかありませんでしたが、これは明らかではありません。実際、C_OBJECT コマンドは、オブジェクトを含まないオブジェクト変数を宣言し、オブジェクトは、いくつかのプロパティが定義されると同時に、最初のOB SET の呼び出しの時だけ、実際に作成されるのです。v16 R3 からは、もうJSON Parse を使う必要はありません。オブジェクトを初期化 するコマンドはひとつだけです:New object! 簡単で直感的です!
// Previous versions
C_OBJECT( ) := ("{}") $obj
$objJSON Parse
//$obj={}
4D v16 R3 以降は、New object を使うだけでいいのです。
// From 4D v16 R3
C_OBJECT( ) := $obj
$objNew object
//$obj={}
例2
以下のように、オブジェクトを作成せずに、4Dコマンドの中で直接New object を使用することもできます。
// Previous versions
。
C_OBJECT( ) ( ) ( ; "path"; "DB.cacheReadBytes") ( ; "withHistory";True) ( ; "historyLength";2*60) := ( )$oParams
C_OBJECT$measures
OB SET$oParams
OB SET$oParams
OB SET$oParams
$measuresGet database measures$oParams
4D v16 R3以降では、このコードは、New object を使って書くことができます。
// From 4D v16 R3
C_OBJECT($measures)
$measures :=Get database measures(New object("path"; "DB.cacheReadBytes"; "withHistory";True; "historyLength";120))
その他のコード例は、以下のサンプルデータベースで見ることができます。
より詳細な情報は、ドキュメントを参照してください。4D v16 R3 language manual のNew object コマンドの記事を見てみてください。