如何检查函数参数是否未定义?
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);
现在是否使用参数调用“测试”取决于 jQuery。