如果指定的值具有指定名称的方法, 则返回非零数字.
HasMethod := HasMethod(Value , Name, ParamCount)
类型: Any
除了 ComObject 之外的任何类型的任何值.
类型: 字符串
要检查的方法名.
省略这个参数来检查 Value 本身是否可调用.
将被传递给方法或函数的参数数量. 如果指定, 可以查询该方法的 MinParams, MaxParams 和 IsVariadic 属性, 以验证它是否可以接受这个参数指定的数量. 如果这些属性不存在, 参数计数就不会被验证.
这个计数不应该包括隐含的 this
参数.
如果省略(或者参数数没有被验证), 则会对 Call 方法进行基本检查, 以验证该对象是可调用的.
类型: 整数(布尔值)
如果找到方法并通过验证(如果执行), 则返回 true, 否则返回 false.
HasMethod 与 GetMethod 具有同样的限制.
此函数可用于评估某个值是否支持特定操作. 例如, 没有调用方法的值不能被调用或传递给 SetTimer, 而没有 __Enum 方法或 Call 方法的值不能传递给 For. 但是, 方法的存在并不保证可以调用它, 因为必须满足一些要求, 比如参数计数.
当指定 ParamCount 时, 该函数执行的验证等同于 SetTimer 等内置函数所执行的验证.
返回 false 并不一定表示不能调用该方法, 因为该值可能具有一个 __Call 元-函数. 但是, __Call 在特定的上下文中, 如 For 调用 __Enum 时, 不会触发调用. 如果 __Call 存在, 则无法检测它可能支持的方法.
函数支持原始值.
Objects, HasBase, HasProp, GetMethod