【问题标题】:checking the instances If they are constructed from same Constructor in javascript [duplicate]检查实例是否是由javascript中的相同构造函数构造的[重复]
【发布时间】:2012-09-19 00:10:39
【问题描述】:

可能重复:
Javascript type of custom object

我有一个关于 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
如何检查它们是否是从同一构造函数 Box 创建的?

【问题讨论】:

    标签: javascript class object types


    【解决方案1】:

    您可以使用 instanceof 喜欢:

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

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

    var blueBox = new Box("blue");
    var greenBox = new Box("green");
    if (blueBox.constructor === greenBox.constructor){
      //yay 4 same constructors
    }
    

    【讨论】:

      【解决方案2】:
      【解决方案3】:

      您的自定义对象Box 是一个考虑到 javascript 的对象,但它可以是一个 instance of Box,它是 object 类型的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-23
        • 2017-01-13
        • 2017-11-06
        • 2015-06-11
        • 1970-01-01
        • 2018-02-11
        • 1970-01-01
        • 2016-11-02
        相关资源
        最近更新 更多