閉包
概念:
閉包就是能夠讀取其他函數(shù)內(nèi)部變量的函數(shù)条霜。
(有權(quán)訪問另一個函數(shù)作用域中的變量的函數(shù)间雀。)
(就是拿到本不該屬于他的東西)
作用:
閉包可以用在許多地方悔详。它的最大用處有兩個,一個是可以讀取函數(shù)內(nèi)部的變量惹挟,另一個就是讓這些變量的值始終保持在內(nèi)存中茄螃。
閉包注意問題:
由于閉包會使得函數(shù)中的變量都被保存在內(nèi)存中,內(nèi)存消耗很大连锯,所以不能濫用閉包责蝠,否則會造成網(wǎng)頁的性能問題党巾,在IE中可能導(dǎo)致內(nèi)存泄露。
優(yōu)點(diǎn):閉包可以讓局部變量持久化
作用域鏈
概念:在一個函數(shù)中嵌套多個函數(shù)霜医,并且各自定義的相同的變量名齿拂,當(dāng)函數(shù)訪問變量時,就形成了作用域鏈肴敛。
查找順序:從當(dāng)前函數(shù)開始查找署海,如果沒有找到,向上一級函數(shù)開始查找医男,直到找到為止砸狞,如果一直沒有找到,則說明該變量未定義镀梭。
作用域鏈明確表示:在變量解析過程中首先查找局部作用域刀森,然后查找上層作用域
垃圾回收:
有兩種策略來實(shí)現(xiàn)垃圾回收:標(biāo)記清除 和 引用計數(shù);
標(biāo)記清除:垃圾收集器在運(yùn)行的時候會給存儲在內(nèi)存中的所有變量都加上標(biāo)記报账,然后研底,它會去掉環(huán)境中的變量的標(biāo)記和被環(huán)境中的變量引用的變量的標(biāo)記,此后透罢,如果變量再被標(biāo)記則表示此變量準(zhǔn)備被刪除榜晦。 2008年為止,IE羽圃,F(xiàn)irefox乾胶,opera,chrome朽寞,Safari的javascript都用使用了該方式识窿;
引用計數(shù):跟蹤記錄每個值被引用的次數(shù),當(dāng)聲明一個變量并將一個引用類型的值賦給該變量時脑融,這個值的引用次數(shù)就是1喻频,如果這個值再被賦值給另一個變量,則引用次數(shù)加1吨掌。相反,如果一個變量脫離了該值的引用脓恕,則該值引用次數(shù)減1膜宋,當(dāng)次數(shù)為0時,就會等待垃圾收集器的回收
this(部分--后續(xù)更全面)
this對象是在運(yùn)行時基于函數(shù)的執(zhí)行環(huán)境綁定的炼幔。在全局函數(shù)中秋茫,this等于window,而當(dāng)函數(shù)被用作為某個對象的方法調(diào)用時乃秀,this等于那個對象肛著。不過匿名函數(shù)的執(zhí)行環(huán)境具有全局性圆兵,因此其this對象通常指向window。
js動畫(上)
offsetParent
只讀 屬性? 返回離當(dāng)前元素最近的一個有定位屬性的父節(jié)點(diǎn)
如果沒有定位父級枢贿, 默認(rèn)是body
offsetLeft
若無定位父級殉农,則offsetLeft屬性來返回元素的X坐標(biāo)。
只讀? 屬性? 當(dāng)前元素到定位父級的距離(偏移值)
到當(dāng)前元素的offsetParent的距離
offsetLeft可以判斷一個物體的跟document的左邊距離局荚,也就是瀏覽器左邊緣超凳。
obj.offsetLeft 指 obj 距離左方或上層控件的位置,整型耀态,單位像素轮傍。
offsetTop
若無定位父級,則offsetTop屬性來返回元素的Y坐標(biāo)首装。
obj.offsetTop 指 obj 距離上方或上層控件的位置创夜,整型,單位像素仙逻。
用時間積累經(jīng)驗(yàn)驰吓,你不比任何人差,相信自己桨醋,不放棄棚瘟,不回頭,不退縮喜最,加油Y苏骸!瞬内!