関数パラメータが未定義かどうかを確認するにはどうすればよいですか?
procedure Test(aValue: TObject);
begin
if aValue <> nil then
ShowMessage('param filled') <-- also when Test() is executed!
else
ShowMessage('no param filled') <-- not called, only when Test(nil) is called
end;
ただし、この関数がパラメーターなしの純粋なJSで呼び出されると、aValue = undefinedになりますが、<>nilチェックは==nullに変換されます。
たとえば、コールバック付きのJS関数がある場合:
type
TObjectProcedure = procedure(aValue: TObject);
procedure FetchUrlAsync(aUrl: string; aCallback: TObjectProcedure )
begin
asm
$().load(@aUrl, @aCallback);
end;
end;
この関数は次のコマンドで呼び出すことができます。
FetchUrlAsync('ajax/test.html', Test);
「Test」がパラメータで呼び出されるかどうかは、jQueryに依存するようになりました。