JavaScript - インスタンスオブ演算子
黄舟
黄舟 2017-05-19 10:26:43
0
3
712

https://www.ibm.com/developer...

この記事によると

instaceof は次のコードでシミュレートできます

リーリー

しかし
var a=1;
instance_of(a,Object) は true
instanceof Object は false を返します。これはなぜでしょうか?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全員に返信(3)
伊谢尔伦

オーナー、あなたのinstance_of 是代替不了 instanceofを試してみてください

まず、サンプル a のタイプが Number であることを確認してください

ただし、実行結果は以下の通り
instance_of(a, Object) // true
instance_of(a, Number) // true

instance_of メソッドを変更します:

リーリー

もう一度実験してみましょう:

リーリー
いいねを押す +0
世界只因有你

この記事で使用されている規格はES3です

ES6 の instanceof标准更长一点, 规定了当type(L)不是Object时L instanceof R は false を返す必要があります。このモックコードは適用されません

いいねを押す +0
曾经蜡笔没有小新

1 つの部分は、シミュレーション コード内のプロトタイプ チェーンのコンテンツです。

リーリー

L = L._proto_ 代表着L会沿着原型链一直向上查找原型,而在本例中,最后是从Number包装对象==>Object对象,而R就是Object,再经过全等运算符之后就返回true,所以instance_of(a,Object)は本当です。

a instanceof Objectプロトタイプチェーン検索を経ず、NumberオブジェクトのインスタンスとObjectの間で直接判定するため、結果がfalseとなる

🎜
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート