toString()在使用传递参数时出错

toString() giving error when using to pass parameter

toString 在将其用作

时出现错误 cannot read property 'toString()' of undefined
document.getElementById('pMonth').addEventListener('click',function(){ calen(this.year.toString()+'-'+(this.currentMonth1-1).toString());},false);

但是代码在使用 as

时运行良好
var tr=this.year.toString()+'-'+(this.currentMonth1-1).toString();
document.getElementById('pMonth').addEventListener('click',function(){ calen(tr);},false);

this.yearthis.CurrentMonth1是数值!! 请告诉我哪里出错了!

您需要将上下文绑定到您的事件处理程序,因为 this 将引用从 document.getElementById('pMonth')

返回的 DOM 元素

所以你需要:

document.getElementById('pMonth').addEventListener(
   'click', 
   function(){
       calen(this.year.toString()+'-'+(this.currentMonth1-1).toString());
   }.bind(this),
   false
);