javascript - 为什么组合构造函数/原型(prototype)模式返回 typeof 是对象?

标签 javascript object prototype-programming

我很难理解为什么 typeof 在使用此构造函数/原型(prototype)模式时不会在 MyObject 的实例上返回 MyObject - 它在 MyObject 的原型(prototype)具有之后返回使用 MyObject 构造函数由 new 创建的实例上的对象将其构造函数设置为 MyObject - 有人可以解释为什么吗?

function MyObject(foo, bar) {
  this.foo = foo;
  this.bar = bar;
}

MyObject.prototype = {
  constructor: MyObject,
  someFunc: function() {
    console.log(foo + " and " + bar);
  }  
}

var newObject = new MyObject("a", "b");
typeof newObject;

最佳答案

如果要检查以下内容,请使用 instanceof 运算符:newObject instanceof MyObject;(返回 true)

有关 typeof 为何如此表现的更多信息:http://javascript.crockford.com/remedial.html

关于javascript - 为什么组合构造函数/原型(prototype)模式返回 typeof 是对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6575332/

相关文章:

javascript - 如何在 JavaScript 中创建 protected 对象属性

javascript - 原型(prototype) "this"不工作 (JS)

javascript - 如何在不按回车键的情况下进行搜索

javascript - 如何读取javascript对象

javascript - 在 JavaScript 中订阅事件

c++ - 你能做一个 C++ 泛型函数吗?

javascript - 对象原型(prototype)链的深度会影响性能吗?

javascript - Laravel blade View 相对路径

object - 如何将 Kotlin 数据类对象转换为映射?

javascript - 如何通过对象数组中的键值合并或连接数据?