当setTimeout调用其匿名回调时,为什么我和这个未定义?
var gMyObj = new MyObj();
gMyObj.myFunc();
function MyObj() {
this.myFunc = function () {
var me = this;
alert(me.constructor); // defined
setTimeout(function(me) {
alert(me.constructor); // undefined
}, 100);
};
}
分辨率:所选答案是正确的,谢谢。我的问题是对我实际遇到的问题进行简化,后来发现jQuery在click()方法中修改this的方式,使它指向相关的DOM元素。我创建了一个新的变量me来保存this,并尝试将其传递给click方法。我只需要在click事件中使用me,并让闭包保留对它的引用即可。将me传递给click()方法失败了,因为与此示例相同,即click()没有期望它。