【问题标题】:Object - calling an object before defining itObject - 在定义对象之前调用它
【发布时间】:2023-03-11 23:07:01
【问题描述】:

看看this JavaScript code。运行我的网页时,它说:

TypeError:字典不是构造函数。

但是,当我在 Firefox 控制台上复制和粘贴相同的内容时,它可以完美运行。有什么问题?

【问题讨论】:

  • 请在此处包含相关代码...不过看起来,它似乎可能是 Firefox 控制台中的错误 - 它不应该在那里工作(并且实际上在我的 Firefox 控制台中不起作用——你一定没有把它完全放在你那里)。例如,它在 Chrome 控制台中不起作用 - 同样的错误。
  • 分别尝试每个对象。
  • 简而言之,Dictionary 被定义(但值为undefined),因为定义被提升到顶部,但直到您尝试很久之后才分配函数运行new Dictionary
  • @JamesThorpe 似乎是重复的,但直到给出答案我才意识到。

标签: javascript object


【解决方案1】:

是因为吊装吗?

var dict = new Dictionary();
var Dictionary = function () { ... };

就像

var Dictionary;
var dict = new Dictionary();
Dictionary = function () { ... };

所以当你new时,变量Dictionary就是undefined

【讨论】:

    【解决方案2】:
    var dict = new Dictionary() 
    

    这部分代码必须放在 Dictionary 的定义之后,否则显然会失败。它可以在您的控制台中运行,因为控制台将在定义对象后运行,而在您的代码中,您试图实例化一个尚不存在的类。

    【讨论】:

    • 谢谢,它成功了。顺便说一句,如果你能附上参考文献会更好。
    猜你喜欢
    • 1970-01-01
    • 2017-09-21
    • 1970-01-01
    • 2017-10-29
    • 1970-01-01
    • 1970-01-01
    • 2013-06-15
    • 2013-06-19
    • 1970-01-01
    相关资源
    最近更新 更多