statusDefault = status.textContent,
setStatus = function(s){
status.textContent = s;//to set any status
if(s != statusDefault){
var delay = setTimeout(function(){
setStatus(statusDefault);
clearInterval(delay);
},3000);
}
};
setStatus('Testing..');
在上面的代码中,我没有得到它的工作原理。默认状态更改为"测试..",3秒后,它再次显示默认状态。我很困惑。
它是如何运作的?
答案 0 :(得分:1)
statusDefault = status.textContent,
在更改内容之前复制内容,将其缓存在JavaScript中。这是默认内容。
setStatus = function(s){
status.textContent = s;
运行该函数时,将第一个参数设置为status
' s textContent
。更简单地说,它只是改变函数运行时元素的内容。
if(s != statusDefault){
检查默认值是否先输入。
var delay = setTimeout(function(){
setStatus(statusDefault);
clearInterval(delay);
}, 3000);
创建一个持续3000毫秒(3秒)的超时,3秒后再次使用setStatus(statusDefault)
在内部调用自身,这会将内容重置为原来的内容(因为statusDefault
),并且它还会将前一个if语句呈现为false,因此它不会创建另一个超时。
这是一个更简短(也可能更容易理解)的列表:
statusDefault
。'Testing..'
。'Testing..'
不等于原始内容。statusDefault
。statusDefault
。