如何在没有页面刷新的情况下多次执行构造函数

时间:2013-10-29 08:48:44

标签: javascript constructor

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

var post = function post() {}

我在jQuery事件处理程序

中调用构造函数
post = new post();

首次运行或每次刷新页面时都会运行良好,因为调用methodinvocation constructor会被执行。但是,当单击第二次触发事件的按钮时,它将不再执行,而是在firebug

中收到以下错误消息
TypeError: post is not a constructor

那么为什么在没有页面刷新的情况下第一次运行后它再次无效?

如果没有页面刷新,我将如何让它连续工作?

1 个答案:

答案 0 :(得分:5)

  

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

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

post = new post();

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

只需使用其他名称:

var p = new post();

旁注:JavaScript中压倒性的约定是构造函数以一个大写字母开头,例如: Post而不是post。您可以自由地忽略该约定,但可能会让其他人难以阅读您的代码(例如,此处为SO)。