3

可能重复:
自定义对象的 Javascript 类型

我有一个关于 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))

现在,当我们检查最后两个语句时,浏览器将 type 打印为object
How do I check If they are created from same constructor Box

4

3 回答 3

0

您可以使用instanceof,例如:

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

如果您想检查两个元素,您还可以比较它们constructor的 s:

var blueBox = new Box("blue");
var greenBox = new Box("green");
if (blueBox.constructor === greenBox.constructor){
  //yay 4 same constructors
}
于 2012-09-27T08:51:00.387 回答
0

采用instanceof

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/instanceof

于 2012-09-27T08:51:38.660 回答
0

就 javascript 而言,您的自定义对象Box是一个对象,但它可以是一个对象类型的实例。Box

于 2012-09-27T08:52:59.953 回答