zepto原始碼閱讀第三天

2021-08-20 15:07:45 字數 2144 閱讀 8131

今天準備把$.fn上的函式對照 api 文件過一下。由於函式過多,就不一一記錄了,就把覺得重要的記錄下來吧。

英文版:

中文版:

1、直接繼承原聲js的幾個方法

foreach: emptyarray.foreach,

reduce: emptyarray.reduce,

push: emptyarray.push,

sort: emptyarray.sort,

splice: emptyarray.splice,

indexof: emptyarray.indexof,

2、concat

concat:

function()

return concat.

(zepto.

isz(

this)?

this

.toarray()

:this

, args)

}

如果發現 value 是 zepto 物件,就把它轉成陣列。toarray函式內部大概用.slice.call()的方式把類陣列轉為陣列,es6中已經有array.from方法可以實現同樣的功能了哈。

3、map

map:

function

(fn)))

}$.map=

function

(elements, callback)

else

for(key in elements)

return

flatten

(values)

}

這裡$.map(this, function(el, i))得注意下

情況一:$.map(, function(value, key))value在前,key在後。

情況二:$('xx').map(function(key, value))這種的,key在前,value在後。

fn.call(el, i, el)看這就可以知道,將引數做了調換。第乙個el是上下文。後面兩個引數就是key 和 value的值了。

4、ready

ready:

function

(callback),0

)else

document.

addeventlistener

("domcontentloaded"

, handler,

false

) window.

addeventlistener

("load"

, handler,

false)}

return

this

}

文件載入的幾個狀態:

大概的執行順序:

這裡為了相容,做了很多處理。目的是為了在dom樹構建完成的第一時間就能執行**。

如果支援 domcontentloaded 事件,那最好不過。

如果不支援(ie),就只能通過檢測 doscroll 或者 監聽文件載入的狀態來判斷頁面dom樹是否已經構建完成。

簡單寫個例子驗證了下:

document.

addeventlistener

('readystatechange'

,function()

if(document.readystate ===

'complete')}

);window.

addeventlistener

('domcontentloaded'

,function()

)window.

addeventlistener

('load'

,function()

)

今天就到這了,下篇繼續。

Irrlicht引擎原始碼剖析 第三天

今天開始看include core部分,首先開啟irrmath.h,該檔案在core命名空間裡定義了4個常數,如浮點數比較時的捨入精度,圓周率,以及用於角度與弧度之間轉換的常數值。接著看vector2d.h,該檔案實現了乙個2d向量的模板類,以其相關方法的定義。因為該類中的normalize 方法的...

第三天,努力!!

第三天了,不錯不錯,基本上按自己的計畫進行著,雖然工作還是沒找到,不過也不再那麼的怕了,慢慢來吧,其實也沒太多時間了 今天早上十點才,真的覺得自己太不像話了,不過我一覺醒來就那個時候了,我的手機每天的鬧鐘是7 30不過好像從來聽不見它響,哈哈 明天希望能早點起,明天北京工體有乙個大型的招聘會,可以去...

杭州第三天

一樣的時間起床,一樣的時間去吃早飯,坐在一樣的位置享受完幾乎一樣的陽光和一根煙以後,我開始了在杭州ut的又一天工作。上午按照計畫重新安裝oracle資料庫,由於一邊安裝一邊給旁邊的兩個同事作簡單的解釋,所以到了在中午吃飯以前只是安裝完了軟體部分。ut的食堂有兩層,每個月的餐費都是直接打入員工卡中,所...