https://www.ibm.com/developer...
この記事によると
instaceof は次のコードでシミュレートできます
リーリーしかし
var a=1;
instance_of(a,Object) は true
instanceof Object は false を返します。これはなぜでしょうか?
人生最曼妙的風景,竟是內(nèi)心的淡定與從容!
オーナー、あなたのinstance_of
是代替不了 instanceof
を試してみてください
まず、サンプル a のタイプが Number であることを確認してください
ただし、実行結(jié)果は以下の通り
instance_of(a, Object) // true
instance_of(a, Number) // true
instance_of メソッドを変更します:
リーリーもう一度実験してみましょう:
リーリーこの記事で使用されている規(guī)格はES3です
ES6 の instanceof
標準更長一點, 規(guī)定了當type(L)
不是Object時L instanceof R
は false を返す必要があります。このモックコードは適用されません
1 つの部分は、シミュレーション コード內(nèi)のプロトタイプ チェーンのコンテンツです。
リーリーL = L._proto_
代表著L會沿著原型鏈一直向上查找原型,而在本例中,最后是從Number包裝對象==>Object對象,而R就是Object,再經(jīng)過全等運算符之后就返回true,所以instance_of(a,Object)
は本當です。
a instanceof Object
プロトタイプチェーン検索を経ず、NumberオブジェクトのインスタンスとObjectの間で直接判定するため、結(jié)果がfalseとなる