2013-10-29 47 views
0

我是0123.中使用OOP方法的新手段,我使用下面的代碼作爲constructor如何在不刷新頁面的情況下多次執行構造函數

var post = function post() {} 

我叫jQuery事件處理

post = new post(); 

內部構造。在第一次運行或在每個頁面刷新,這很好,因爲一個methodinvocation調用constructor被執行後的作品。但在點擊觸發事件的第二次按鍵,就不再執行,我不是在firebug

TypeError: post is not a constructor 

因此,獲得以下錯誤消息爲什麼它不是第一次運行之後再工作,沒有一個頁面刷新?

如何在不刷新頁面的情況下連續工作?

回答

5

那麼,爲什麼它不會再次在第一次運行

後,因爲你已經覆蓋了post符號工作。這條線:

post = new post(); 

調用你post構造函數和分配結果對象的post變量。現在post不再是構造函數,它是通過new post創建的對象。

只需使用一個不同的名稱:

var p = new post(); 

邊注:JavaScript中的壓倒性的約定是構造函數開始初始大寫字母,例如Post而不是post。你可以自由地忽略這個約定,但它可能會讓其他人閱讀你的代碼變得困難(例如,在這裏)。

+0

你是如何回答如此之快的? :) – dg123

+0

@ user1436026:簡單的問題,我在高中時打字。 ;-) –

+0

*旁註:* var post = function post(){}'也會產生混淆副作用,因爲'post'引用不再是指定的函數表達式。 – David

相關問題