当前位置: 首页 > 面试题库 >

判断instanceof的结果并解释原因

仲孙德惠
2023-03-14
问题内容

判断instanceof的结果并解释原因 [代码]

    function test(){ 
        return test; 
    } 
    new test() instanceof test;

问题答案:
  • 如果函数明确返回值,那么 new 运算符的结果将是这个值。
  • 如果函数明确返回 non-primitive 值,那么 new 运算符的结果将是这个值。- 感谢 @xxf1996 指正
  • 所以,原表达式相当于:test instanceof test
  • instanceof 运算符将检测右端值的 prototype 属性是否在左端值的原型链([[Prototype]] 属性)上;
  • 如果不在,则向上查找([[Prototype]][[Prototype]],…),直到找遍左端值的整个原型链。

注:[[Prototype]] 属性可以通过 Object.getPrototypeOf(obj) 函数获得,

  • 左端值 test 是一个 Function,故它的原型链为:
    Function.prototype -> Object.prototype -> null
  • 可以看到,原型链上没有 test.prototype 出现,所以 test 并不是 test 的一个实例。
  • 所以 instanceof 运算符返回 false
 类似资料:
  • 本文向大家介绍 判断[].__proto__.__proto__ === {}.__proto__结果并解释为什么相关面试题,主要包含被问及 判断[].__proto__.__proto__ === {}.__proto__结果并解释为什么时的应答技巧和注意事项,需要的朋友参考一下 的结果是 。 指向 而 Array 的原型对象本身也是一个对象,所以它的 指针会指向 ,所以 最终指向 。 一个普通

  • 问题内容: [代码] 问题答案:

  • 问题内容: 我是jstat工具的新手。因此,我做了如下示例。 结果表明什么?哪些列需要注意可能的内存问题,例如内存泄漏等。 问题答案: 请参阅文档: https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html 基本上,一行是一个时间点。这些列显示了有关JVM内存区域(Survivor,Eden等)的数据,如果不了解JV

  • 我不熟悉jstat工具。因此,我做了如下样本。 这个结果表明了什么?哪些列需要注意可能的内存问题,例如内存泄漏等。

  • 我有以下来自weka项目的结果,我在理解它们的含义方面有一些问题。weka结果我知道正确分类实例的百分比通常称为准确性或样本准确性,但我不明白这意味着什么以及它向我展示了什么。我可以从中获得什么信息?正确分类的实例和不正确的实例是什么?同样在混淆矩阵上,我知道四个数字的总和是我给程序的数据的数量,但为什么在这样的网格中有四个数字。您可以提供的任何信息都会很有帮助,谢谢。

  • MDN描述: instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。 即检测构造函数的原型是否存在于参数的原型链上。 例如: 因为 Object.getPrototypeOf(o) === C.prototype //true 但是我使用字面量格式缺出现了问题 能解释下为什么 a 不是一个 Number 构造函数的实例么?