2013-09-27 30 views
1

我需要獲取mousedown事件的X位置或Y位置。 所以我嘗試傳遞一個參數給我的getPosition函數。Javascript函數:將字符串附加到對象並返回對象值

function getPosition(event, param) { 
    // expected: var value = event.pageX; 
    var value = event.param; 
    return value; 
} 

$('#element').on('mousedown', function(e){ 
    var myValue = getPosition(e, 'pageX'); 
} 

我在這裏錯過了什麼?

回答

2

你需要使用括號符號來代替:

function getPosition(event, param) { 
    // expected: var value = event.pageX; 
    var value = event[param]; 
    return value; 
} 

如果您使用點表示法,瀏覽器會尋找一個對event對象,不存在名爲param財產。使用括號表示法,瀏覽器將評估param並在對象上查找。

Here是演示上面代碼的小提琴。

+0

This Works! 性能方面,這種方法有什麼缺點,而不是使用兩個單獨的函數getPositionX和getPositionY? –

+0

性能方面,括號表示法似乎稍慢。但是如果連續數百萬次沒有調用它,你甚至可以衡量兩者之間的差異。 http://jsperf.com/dot-vs-square-bracket/5 – CodingIntrigue

相關問題