当前位置:  开发笔记 > 编程语言 > 正文

为什么用不!! MS AJAX中的布尔值?

如何解决《为什么用不!!MSAJAX中的布尔值?》经验,为你挑选了1个好方法。

从MS AJAX源代码,

Type.isClass = function Type$isClass(type) {
/// 
/// 
/// 
var e = Function._validateParams(arguments, [
    {name: "type", mayBeNull: true}
]);
if (e) throw e;
if ((typeof(type) === 'undefined') || (type === null)) return false;
return !!type.__class;

}

请看最后一行代码,为什么用!! 而不只是返回类型.__类?

谢谢!



1> Triptych..:

作者一定不能认为type.__class保证是一个布尔值.因为您可以将任何对象传递给Type.isClass():

Type.isClass(3);
Type.isClass({});
Type.isClass(AnActualClassFunction);

...实际上并不能保证type.__class会有一个布尔值.

当然,这不是ASP.NET AJAX"类"参数一般不会有一个__class属性-因此,如果程序只是返回type.__class,可能的返回值是true,falseundefined.对于用于返回布尔值的例程,这是不合需要的.

!!type.__class只保证返回一个布尔值(truefalse)(undefined将被转换为false).

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有