只是想了解,接下来应该返回什么以及如果如何proto.constructor = Object
?
return !!( proto === null || proto.constructor === Object );
更具体地说,如何!!
工作?
只是想了解,接下来应该返回什么以及如果如何proto.constructor = Object
?
return !!( proto === null || proto.constructor === Object );
更具体地说,如何!!
工作?
(!
逻辑非)运算符
如果其单个操作数可以转换为 true,则返回 false;否则,返回真。(MDN)
它将返回一个布尔值:true 或 false。!!
用作双重翻转:如果一个值为假,则将其翻转为真,然后将其翻转回假。基本上,有!!
和没有是一样的!!
。
如果proto === null
或为真proto.constructor === Object
。
假 iffproto !== null
和proto.constructor !== Object
.
因此,如果proto.constructor = Object
,它将返回 true。
类型错误。因为 proto 未定义且不等于 null,所以 js 将尝试从 proto 中获取不存在的属性“constructor”。