【问题标题】:Javascript instanceof weird behaviorJavascript instanceof 奇怪的行为
【发布时间】:2015-07-31 13:31:13
【问题描述】:

为什么返回false?

function f(){ return f; }
new f() instanceof f; // Prints false instead of true 

据我了解,在这种特殊情况下,instanceof 应该检查以下内容:

newObj.__proto__ === f.prototype

并且newObj.__proto__ 应该在new f() 调用时自动设置。

【问题讨论】:

    标签: javascript prototype instanceof


    【解决方案1】:

    构造函数隐式返回thisthis 构造函数的一个实例,因此,如果您返回 this,该函数将评估为 true。

    你确实返回this。您返回f,它不是构造函数的实例,因此表达式返回false

    【讨论】:

    • 我认为当你写 new 时最好写 new F() instanceof f;
    • @EndritShala JavaScript 区分大小写,所以Ff 不是同一个符号
    • @V_B 太棒了,我很高兴。如果它回答了您的问题,请考虑将此答案标记为已接受:)
    • @Petrichor 完成。有一个限制 - 我无法在前 15 分钟内接受您的回答
    猜你喜欢
    • 1970-01-01
    • 2013-01-20
    • 2011-07-28
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多