https://www.ibm.com/developer...
この記事によると
instaceof は次のコードでシミュレートできます
リーリーしかし
var a=1;
instance_of(a,Object) は true
instanceof Object は false を返します。これはなぜでしょうか?
伊谢尔伦2017-05-19 10:28:43
オーナー、あなたのinstance_of
是代替不了 instanceof
を試してみてください
まず、サンプル a のタイプが Number であることを確認してください
ただし、実行結果は以下の通り
instance_of(a, Object) // true
instance_of(a, Number) // true
instance_of メソッドを変更します:
リーリーもう一度実験してみましょう:
リーリー世界只因有你2017-05-19 10:28:43
この記事で使用されている規格はES3です
ES6 の instanceof
标准更长一点, 规定了当type(L)
不是Object时L instanceof R
は false を返す必要があります。このモックコードは適用されません
曾经蜡笔没有小新2017-05-19 10:28:43
1 つの部分は、シミュレーション コード内のプロトタイプ チェーンのコンテンツです。
リーリーL = L._proto_
代表着L会沿着原型链一直向上查找原型,而在本例中,最后是从Number包装对象==>Object对象,而R就是Object,再经过全等运算符之后就返回true,所以instance_of(a,Object)
は本当です。
a instanceof Object
プロトタイプチェーン検索を経ず、NumberオブジェクトのインスタンスとObjectの間で直接判定するため、結果がfalseとなる