我有一個JavaScript對象,我希望能夠處理一些交互功能。以簡單的方式描述場景有點棘手,所以希望它不會在這裏一發不可收拾。混淆,這個指針和JavaScript中的事件
我物體看起來像
myobject = function() {
this.initialize = function() {
// HERE this = the myobject instance
var test = document.createElement('div');
test.onmousedown = this.mousedown;
}
this.mousedown = function(e) {
// HERE this = the calling div-element
}
}
所以我的問題基本上是this
不會成爲一個myobject
實例時this.mousedown(e)
被調用時,它會寧是調用(如果術語是正確的嗎?)在這情況下,它是我創建的div,並將其放在上面的變量test
中。
我想訪問正在運行該方法的實例(因爲我相信這是我創建的mousedown
方法)。
這遠遠我有一些想法,我已經嘗試了:
- 上創建一個
div
屬性data-
包含this
對象,並在該操作。 - 發送this指針作爲參數與
e
一起this.mousedown(e)
這是所有我能想到的,現在希望它讓SENCE。
你意識到你的示例代碼是無效的JS? 'funciton(){...}'是調用一個名爲「funciton」的函數的方法,後跟一個不相關的語句塊。 'this.initialize(){...}'同樣是一個方法調用,後跟一個不相關的塊。正如'this.mousedown(){...}'。分號插入後,這段代碼相當於'myobject = funciton(); this.initialize(); var test = ...; test.onmousedown = this.mousedown; this.mousedown();' –