我是OOP
中使用javascript
方法的新手,我使用下面的代码作为constructor
。
var post = function post() {}
我在jQuery
事件处理程序
post = new post();
首次运行或每次刷新页面时都会运行良好,因为调用method
后invocation
constructor
会被执行。但是,当单击第二次触发事件的按钮时,它将不再执行,而是在firebug
TypeError: post is not a constructor
那么为什么在没有页面刷新的情况下第一次运行后它再次无效?
如果没有页面刷新,我将如何让它连续工作?
答案 0 :(得分:5)
那么为什么它在第一次运行后不再起作用
因为您已覆盖post
符号。这一行:
post = new post();
调用您的post
构造函数并将结果对象分配给post
变量。现在post
不再是构造函数,它是通过new post
创建的对象。
只需使用其他名称:
var p = new post();
旁注:JavaScript中压倒性的约定是构造函数以一个大写字母开头,例如: Post
而不是post
。您可以自由地忽略该约定,但可能会让其他人难以阅读您的代码(例如,此处为SO)。