亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2011年05月25日 21:17:51   作者:  
setTimeout/setInterval,這兩個(gè)函數(shù)相信前端開發(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è)方法,即可以通過參數(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)文章

  • array.prototype.silce.call 理解分析

    array.prototype.silce.call 理解分析

    在很多框架中與遇到這個(gè)方法,但一時(shí)沒去研究這個(gè)方法,只要前段時(shí)間被問到,尷尬無奈收?qǐng)?。所以學(xué)習(xí)就要追根究底的精神,廢話少說,說正題。
    2010-04-04
  • 使用nestjs實(shí)現(xiàn)郵件發(fā)送的代碼詳解

    使用nestjs實(shí)現(xiàn)郵件發(fā)送的代碼詳解

    郵箱發(fā)送是我們常見的一個(gè)服務(wù),本篇文章帶大家用nestjs來實(shí)現(xiàn)一下,文中有詳細(xì)的代碼示例和圖文講解,對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-10-10
  • TypeScript聯(lián)合類型,交叉類型和類型保護(hù)

    TypeScript聯(lián)合類型,交叉類型和類型保護(hù)

    這篇文章主要介紹了TypeScript聯(lián)合類型,交叉類型和類型保護(hù),聯(lián)合類型就是定義一些類型,定義的變量只需要滿足任意一種類型即可,交叉類型就是需要滿足所有類型,交叉類型使用,更多內(nèi)容我們來看看下面文章詳細(xì)內(nèi)容吧
    2021-12-12
  • antd項(xiàng)目實(shí)現(xiàn)彩蛋效果的詳細(xì)代碼

    antd項(xiàng)目實(shí)現(xiàn)彩蛋效果的詳細(xì)代碼

    這篇文章主要介紹了antd項(xiàng)目如何實(shí)現(xiàn)彩蛋效果,首先在components目錄下創(chuàng)建Transform目錄,包括index.css、index.js,index.js是主要的邏輯代碼,下面對(duì)代碼進(jìn)行分析,需要的朋友可以參考下
    2022-09-09
  • 淺談javascript的原型繼承

    淺談javascript的原型繼承

    javascript的繼承在很多框架中都有運(yùn)用,尤其是原型式繼承。首先要理解一個(gè)概念,什么是原型式繼承?所謂的原型式繼承,就是在函數(shù)內(nèi)部先創(chuàng)建一個(gè)臨時(shí)性的構(gòu)造函數(shù),然后將傳入的對(duì)象做這個(gè)構(gòu)造函數(shù)的原型,最后返回這個(gè)臨時(shí)類型的新實(shí)例
    2012-07-07
  • 判斷日期是否能跨月查詢的js代碼

    判斷日期是否能跨月查詢的js代碼

    本節(jié)主要介紹了用js判斷日期是否能跨月查詢,需要的朋友可以參考下
    2014-07-07
  • JavaScript中計(jì)算網(wǎng)頁中某個(gè)元素的位置

    JavaScript中計(jì)算網(wǎng)頁中某個(gè)元素的位置

    這篇文章主要介紹了JavaScript中計(jì)算網(wǎng)頁中某個(gè)元素的位置,本文先是講解了一些必要的知識(shí)和實(shí)現(xiàn)難點(diǎn),然后給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-06-06
  • JavaScript使用箭頭函數(shù)實(shí)現(xiàn)優(yōu)化代碼

    JavaScript使用箭頭函數(shù)實(shí)現(xiàn)優(yōu)化代碼

    在JavaScript的編程世界里,我們時(shí)常被普通函數(shù)的冗長(zhǎng)寫法所困擾,每次都需要寫function關(guān)鍵字,有時(shí)候還要明確地寫return語句,下面我們就來看看如何利用箭頭函數(shù)優(yōu)化這些繁瑣的代碼吧
    2023-11-11
  • Echart結(jié)合圓形實(shí)現(xiàn)儀表盤的繪制詳解

    Echart結(jié)合圓形實(shí)現(xiàn)儀表盤的繪制詳解

    EChart開源來自百度商業(yè)前端數(shù)據(jù)可視化團(tuán)隊(duì),基于html5?Canvas,是一個(gè)純Javascript圖表庫,提供直觀,生動(dòng),可交互,可個(gè)性化定制的數(shù)據(jù)可視化圖表。本文將利用EChart實(shí)現(xiàn)儀表盤的繪制,感興趣的可以學(xué)習(xí)一下
    2022-03-03
  • Bootstrap優(yōu)化站點(diǎn)資源、響應(yīng)式圖片、傳送帶使用詳解3

    Bootstrap優(yōu)化站點(diǎn)資源、響應(yīng)式圖片、傳送帶使用詳解3

    這篇文章主要介紹了Bootstrap優(yōu)化站點(diǎn)資源、完成響應(yīng)式圖片、讓傳送帶支持手勢(shì)的相關(guān)知識(shí),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10

最新評(píng)論