1
var trackDay = new Date(2013, 10, 1);


alert(trackDay);

img.addEventListener("click", function(trackDay){                            
    alert(trackDay);
}.bind(null,trackDay),true); 

trackDay.setDate(trackDay.getDate()+1);

当我希望它成为第一个值时,单击事件的此警报会生成递增日期的值。

4

2 回答 2

1

假设您不能/不想使用第二个变量,那么您可以使用 bind 传递日期对象的字符串表示形式,并在回调函数中从该字符串中创建一个新的日期对象。

在这里检查 plunker

var trackDay = new Date(2013, 10, 1);

alert(trackDay);

img.addEventListener("click", function(trackDay){
    var date = new Date(trackDay);
    alert(date);
}.bind(null,trackDay.toString()),true); 

trackDay.setDate(trackDay.getDate()+1);
于 2013-11-14T17:55:35.507 回答
0

jsfiddle做你想做的事吗?

html:

<img src="http://placekitten.com/100/100" />

JavaScript:

(function () {
    'use strict';
    var img;
    function trackDay (val) {
        return function () {
            alert(val);
            val += 1;
        }
    }
    img = document.getElementsByTagName('img')[0];
    img.addEventListener("click", trackDay(0), true);
}());
于 2013-11-14T16:59:17.650 回答