我想知道是否有人可以给我一个简单的解决方案。
我想让两个狗实例重复吠叫+摇尾组合。
如果所有逻辑都包含在 barkNameAndTime 函数中,我很好,但是通过 setTimout 调用 wagTail 我会丢失上下文。我写的 JS 不多,所以我的闭包知识有点生疏,我似乎找不到干净的解决方案。
问题是Baloo最终会吠叫和摇尾巴,而Lola在人群中消失了:)
谢谢沃里克
<script type="text/javascript">
$(document).ready(function () {
var zDog1 = new dog("Lola");
var zDog2 = new dog("Baloo");
zDog1.bark();
zDog2.bark();
});
function dog(aName) {
var name = aName,
barkNameAndTime = function () {
var time = new Date().getTime();
$('#MyDiv').html($('#MyDiv').html() + "<br />" + name + " barked @ " + time);
setTimeout(wagTail, 1000);
};
wagTail = function () {
var time = new Date().getTime();
$('#MyDiv').html($('#MyDiv').html() + "<br />" + name + " wagged tail @ " + time);
setTimeout(barkNameAndTime, 1000);
}
return {
bark: barkNameAndTime
};
}