美文网首页Web 前端开发
js instanceof 操作符的问题

js instanceof 操作符的问题

作者: 顾川眉 | 来源:发表于2018-03-11 16:44 被阅读0次

    instanceof 运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性。
    引自 MDN

    但是MDN中如下代码:

    var simpleStr = "This is a simple string"; 
    var myString  = new String();
    var newStr    = new String("String created with constructor");
    var myDate    = new Date();
    var myObj     = {};
    simpleStr instanceof String; // returns false, 检查原型链会找到 undefined
    

    我经过测试发现:

    simpleStr.__proto__ === String.prototype // true
    
    Object.getPrototypeOf(simpleStr) === String.prototype //true
    

    String.prototype明明就在simpleStr的原型链上啊, 但是 simpleStr instanceof String; 返回了false...
    js真坑, 唯一一种解释就是,字面量是没有原型的。 但是为何此处Object.getPrototypeOf(simpleStr) 能获得原型。。

    相关文章

      网友评论

        本文标题:js instanceof 操作符的问题

        本文链接:https://www.haomeiwen.com/subject/nfswfftx.html