我是一個剛剛學習JavaScript的C++人,所以'this'綁定到調用對象的事實仍然令人驚訝。我想使用一個對象方法作爲一個事件監聽器,並且想要確保我正在使用JavaScript專業人員的所有風格。使用對象方法作爲事件監聽器
因此,獲得方法有它的對象「這個」,這樣我就可以在適當的情況下訪問其屬性,我寫了下面的:
var user =
{
status: 1, // login status: 0:invalid password, 1:logged out, 2:logged in
loginName: "",
// Method called whenever the user submits a username/password via html form:
onLoginSubmit: function (event)
{
if (this != user) // called from 'form submit' callback, so call ourselves:
{
user.onLoginSubmit(event);
return;
}
}
};
我發現了一個以前的答案在這裏: Accessing an object's property from an event listener call in Javascript,但提出的解決方案是基本上創建一個全球。 有沒有比以前的解決方案或我的遞歸解決方案更酷,更專業的方式來獲得'這個'?
關於js的一個重要的事情是這樣的閉包。和匿名函數。哦,我提到了關閉嗎?這些非常重要。 – Alxandr
這就是我一直在尋找的!而且要知道我沒有做過什麼愚蠢的事情......匿名函數技術將我的類方法中的怪異移到了它所屬的位置。謝謝。 – Steger