1,返回偽數組加屬性
$ 返回類數組對象
image.png
image.png
為什么不返回數組呢?
1,作者喜歡
2,如果返回的是數組就會有一個我不想要的API
偽數組怎么使用數組的方法呢?
call方法 (這個是函數的基本方法)
image.png
2,使用原型鏈(實現了繼承機制)
image.png
image.png
image.png
所以當聲明一個數組對象a時 a._proto_屬性和Array.prototyp屬性指向的是同一段內存地址
var a=[1,2],
b=[1,2,3]
a.push.call(b,4)===b.push(4) 達到相同的效果
因為a.push是在a的__proto__里面找的 她相當于 Array在prototype屬性里面去找push
image.png
維持著一堆方法內存的作用是不讓這些方法丟了
當一個內存沒有任何人引用的時候就會死掉
jquery使用_proto_鏈接所有的對象
image.png
image.png
jquery里面的原型鏈關系:
image.png
實際的例子:
image.png
image.png
image.png
jquery把prototype改寫成了fn
image.png
image.png
image.png