【问题标题】:JavaScript - instanceof not doing what I expectJavaScript - instanceof 没有按照我的预期做
【发布时间】:2016-07-06 14:32:14
【问题描述】:

如果我错了,请原谅我,但我认为这样做:

function MyObject()
{
    return {
        key: 'value',
        hello: function() { console.log('world'); }
    };
}

var obj = new MyObject();

我创建了一个 MyObject 类型的新实例。

但是,如果我这样做:

obj instanceof MyObject

它返回 false。这让我感到困惑,因为我认为这会返回 true

我在这里做错了什么?

这里有一个 fiddle 对此进行测试。

我以为我了解了 JavaScript 的基础知识,但也许不是。但是,我发现 sources 与我的发现相矛盾。

【问题讨论】:

    标签: javascript object constructor instanceof


    【解决方案1】:

    如果您从构造函数显式返回一个对象(就像您在此处所做的那样),那么您将获得该对象而不是构造函数的实例。

    如果你想获得构造函数的实例,那么你可以这样做:

    function MyObject()
    {
        this.key = 'value';
        this.hello = function() { console.log('world'); };
    }
    

    (虽然一般来说,您希望将方法放在原型上,而不是在每次构建新实例时生成它们的副本)。

    【讨论】:

      猜你喜欢
      • 2017-09-18
      • 1970-01-01
      • 1970-01-01
      • 2012-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多