抽象オブジェクトまたはオブジェクト リテラルではないようです。
次の値を使用して、アンダースコアから isObject()をテストしました。
var falsy = [
false,
'', "",
0, -0,
undefined, null,
NaN
],
// 6 truthy
truthy = [
true,
'hello',
-1, 1,
Infinity,
/test/
],
// 3 lengthy
lengthy = [
function () {
return undefined;
},
"string",
[0]
],
// 8 globals
globals = [
new String(),
new Number(),
new Boolean(),
new Array(),
new Object(),
new Function(),
new Date(),
new RegExp()
],
all = falsy.concat(truthy, lengthy, globals),
全部使いました。
これは、コンソールから返されたものです。
私が最も奇妙に感じたのは、文字列が明らかに基本/プリミティブ型ではなく、プロパティを保持できると考えられていたオブジェクトとして検出されなかったことです。
これは の薄っぺらな実装のようですisObject()
。
もし実際にこれがやっているとしたら?