>>85
> そのコードは typeof 演算子の "Object (native and does not implement [[Call]])" しか対応できてないだろう?
それで事足りてるという事は仕様的に問題ないという事だ
対応できてない事で実用的に問題があるコード例を挙げて説明してくれ

そもそもJavaScriptは
var obj0 = {hoge:true, foo:false};
var obj1 = {foo:false, bar:1, hoge:true};
function Hoge() {this.hoge = true; this.foo = false;}
var obj2 = new Hoge();
のどれを渡されても同じように機能する事が期待されている
!obj(nullとundefinedのチェック)とプロパティーの存在チェック(と最終的に'number'などの型チェック)以外に必要だとは思えない