最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

僅IE不支持setTimeout/setInterval函數(shù)的第三個(gè)以上參數(shù)

 更新時(shí)間:2011年05月25日 21:17:51   作者:  
setTimeout/setInterval,這兩個(gè)函數(shù)相信前端開(kāi)發(fā)同學(xué)都很熟悉。它們?cè)诜荌E(6-9)瀏覽器中還可以如下使用
復(fù)制代碼 代碼如下:

setTimeout(function(obj){
alert(obj.a);
}, 2000, {a:1});

即傳了第三個(gè)參數(shù),第三個(gè)參數(shù)將作為回調(diào)函數(shù)的參數(shù)obj傳入。在非IE瀏覽器中都彈出了1。這樣有個(gè)好處,即解決了回調(diào)函數(shù)的執(zhí)行上下文,比如要調(diào)用某個(gè)對(duì)象的某個(gè)方法,即可以通過(guò)參數(shù)把該對(duì)象傳進(jìn)去。
復(fù)制代碼 代碼如下:

setTimeout(function(obj){
obj.method();
}, 2000, obj);

當(dāng)然,你還可以傳多個(gè)參數(shù)給回調(diào)函數(shù),如下
復(fù)制代碼 代碼如下:

setTimeout(function(a, b){
alert(a);
alert(b);
}, 2000, 1,2);

這次我們傳了兩個(gè)參數(shù)1,2給回調(diào)函數(shù),F(xiàn)irefox/Safari/Chrome/Opera中依次彈出了1,2。只要你愿意還可以傳更多。

雖然除了IE不支持第三個(gè)參數(shù)外,但Firefox和Safari/Chrome/Opera之間還是有區(qū)別的
復(fù)制代碼 代碼如下:

setTimeout(function(){
alert(arguments.length);
}, 2000, 1,2);

傳了兩個(gè)參數(shù)1,2給回調(diào)函數(shù),然后alert出實(shí)參的長(zhǎng)度
Firefox : 3
Safari/Chrome/Opera : 2
奇怪吧,明明傳的是兩個(gè)參數(shù),但Firefox中彈出的卻是3。如果輸出第三個(gè)參數(shù)會(huì)發(fā)現(xiàn)它是一個(gè)數(shù)字,有時(shí)還是負(fù)數(shù)。
關(guān):

http://www.w3.org/TR/Window/

https://developer.mozilla.org/en/DOM/window.setTimeout

http://msdn.microsoft.com/en-us/library/ms536753%28v=vs.85%29.aspx 
//解決IE下setTimeout傳參數(shù)的bug

復(fù)制代碼 代碼如下:

//解決IE下setTimeout傳參數(shù)的bug
if(!+[1,]) {
(function(overrideFun){
window.setTimeout = overrideFun(window.setTimeout);
window.setInterval = overrideFun(window.setInterval);
})(
function(originalFun){
return function(code, delay){
var args = [].slice.call(arguments, 2);
return originalFun(
function(){
if (typeof code == 'string') {
eval(code);
}
else {
code.apply(this, args);
}
},
delay
)
}
}
);
}

相關(guān)文章

最新評(píng)論

道真| 临清市| 吕梁市| 合川市| 昭觉县| 宁明县| 化州市| 错那县| 江陵县| 宁武县| 南郑县| 怀集县| 隆安县| 衡阳县| 富阳市| 独山县| 鄂温| 丹江口市| 信阳市| 麻栗坡县| 仙桃市| 阿拉善盟| 张家港市| 海林市| 辛集市| 汕尾市| 景泰县| 甘孜| 六盘水市| 崇明县| 安康市| 黎平县| 即墨市| 抚松县| 澎湖县| 赤壁市| 任丘市| 西畴县| 建宁县| 大城县| 平湖市|