为什么组合构造函数/原型模式返回typeof为object?

时间:2011-07-04 19:22:50

标签: javascript object prototype-programming

我很难理解为什么typeof在使用这个构造函数/原型模式时不会在MyObject的实例上返回MyObject - 它是在MyObject的原型之后使用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;

2 个答案:

答案 0 :(得分:3)

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

有关typeof行为的更多信息:http://javascript.crockford.com/remedial.html

答案 1 :(得分:1)