怎样轻松理解jquery的细节
怎样轻松理解jquery的细节
宁哥实战课堂 发表于7个月前
怎样轻松理解jquery的细节
  • 发表于 7个月前
  • 阅读 7
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: 学习、记忆、理解,应当不拘一格,采用一切手段去轻松记忆。最近在整理相关的jquery的学习内容。遇到了这个曾经迷惑过的内容,突然想到怎么巧记,写出来方便回顾。不一定很准确,但很容易记住。

学习、记忆、理解,应当不拘一格,采用一切手段去轻松记忆。最近在整理相关的jquery的学习内容。遇到了这个曾经迷惑过的内容,突然想到怎么巧记,写出来方便回顾。不一定很准确,但很容易记住。

$.each();相当于事先做好了一个对象,连名字都取好了,就像早就做好了window对象一样,调用的时候不需要再实例化,直接拿来调用即可。这样的好处是不但使用起来方便,而且易和别人沟通(别人看得懂了)。那么它相当于由顶级父类事先实例化了一个对象。

而下面的相当于是它的子类(DOM树中,不就是一棵倒立的对象集合吗?一个是另外一个的子对象,以此类比)又重写了该方法。那就当然$.each()可以有一套自己的使用规则,$(选择器).each()也可以有自己的使用规则了,同时,你如果写了$(选择器).each(),它就会覆盖继承过来的$.each();内容...

$('#mydiv').each();相当于通过调用$('#mydiv')返回一个子对象,该子对象调用一个each()方法。那么它知道自己是谁在调用了。也就不需要再传递处理对象了。而上述是父类对象在调用,未来在处理谁,还不知道呢。所以需要传递处理对象。

理解2:你也可以把$.each()看成一个类在调用静态方法,就像C++里的:Animal::set_name();这种。充其量就是js里的调用静态方法的方式不是“::”而也是“.”。而$('#mydiv').each();同样是上述的理解:通过$()的调用返回一个子对象,然后子对象调用each()方法。

静态方法通常是工具,因为不知道作用谁,所以需要传递一个“作用于谁”的参数,比如:一个数组,一个对象(里面有多个属性),然后传递处理函数。后者知道了是谁在调用,也就不需要传递了。

就像举个PHP例子来模拟:

each();//打印了Animal$b=newBird();$b->each();//虽然继承了each方法,但是自己又重写了,所以打印的是自己写的each(),也就打印了Bird

所以$.each()的用法自然是这样:

 

所以$('#myul li').each()的用法自然是这样:

 

如果二者的第2个参数代表的意义不一样,也是可以理解的,因为他们是不同的each()方法,当然可以不一样了。

把简单的东西说的深奥,那是故弄玄虚。把深奥的东西简单化,那才叫本事,才是一个讲师、过来人、前辈该干的事情。

提倡用一切手段去轻松理解,而且要融入你自己的故事和人生经历中,同时还要改的越来越好,越来越轻松记忆,这是一个无止境的事情,是值得深思的。

共有 人打赏支持
粉丝 6
博文 51
码字总数 65150
×
宁哥实战课堂
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: