0

我是使用OOP方法的新手javascript,我使用下面的代码作为constructor.

var post = function post() {}

jQuery我在事件处理程序中调用构造函数

post = new post();

在第一次运行或每次页面刷新时,它运行良好,因为method invocation调用后constructor会执行。但是在第二次单击触发事件的按钮时,它将不再执行,而是在中收到以下错误消息firebug

TypeError: post is not a constructor

那么为什么它在第一次运行后就不能再工作了,没有刷新页面呢?

以及如何在不刷新页面的情况下使其连续工作?

4

1 回答 1

5

那么为什么它在第一次运行后不再起作用

因为您已经覆盖了post符号。这一行:

post = new post();

调用您的post构造函数并将结果对象分配给post变量。现在post不再是构造函数,而是通过new post.

只需使用不同的名称:

var p = new post();

旁注:JavaScript 中压倒性的约定是构造函数以首字母大写开头,例如,Post而不是post. 您可以随意忽略该约定,但这可能会使其他人难以阅读您的代码(例如,在 SO 上)。

于 2013-10-29T08:50:20.370 回答