Автор не должен был думать, что type.__class
гарантированно является логическим значением. Так как вы можете передать любой объект Type.isClass()
:
Type.isClass(3);
Type.isClass({});
Type.isClass(AnActualClassFunction);
... действительно нет гарантии, что type.__class
будет иметь логическое значение.
Конечно, параметры, которые не являются "классами" ASP.NET AJAX, обычно не имеют свойства __class
- поэтому, если подпрограмма просто вернула type.__class
, возможные возвращаемые значения будут true
, false
и undefined
. Это нежелательно для процедуры, предназначенной для возврата логического значения.
!!type.__class
только гарантирует, что будет возвращено логическое значение (true
или false
) (undefined
будет преобразовано в false
).