这个问题已经在这里有了答案:




已关闭8年。






我有一个关于JavaScript实例的问题。
让我们考虑以下代码:

function Box(col)
{
   var color = col;

   this.getColor = function()
   {
       return color;
   };
}

var blueBox=new Box("blue");
console.log(blueBox.getColor())

var greenBox=new Box("green");
console.log(greenBox.getColor())
console.log(typeof(blueBox))
console.log(typeof(greenBox))

现在,当我们检查最后两个语句时,浏览器将类型打印为object如何检查它们是否从相同的构造函数Box创建?

最佳答案

您可以像这样使用 instanceof :

var blueBox=new Box("blue");
if (blueBox instanceof Box){
  //yay 4 boxes!
}

如果要检查两个元素,还可以比较它们的 constructor :
var blueBox = new Box("blue");
var greenBox = new Box("green");
if (blueBox.constructor === greenBox.constructor){
  //yay 4 same constructors
}

07-28 13:13