jquery map調用get()方法的困惑

$( "p" )
  .append( $( "input" ).map(function() {
    return $( this ).val();
  })
  .get()
  .join( ", " ) );
<form>
  <input type="text" name="name" value="John">
  <input type="text" name="password" value="password">
  <input type="text" name="url" value="http://ejohn.org/">
</form>

這是我從官網拿出來的一個examplejavascript

本人曾經很困惑,不明白爲何在map方法的後面要在調用一個get方法。按照理論來講,map 返回出來的數據應該一個數組(集合)。 能夠直接調用join方法轉化爲string.html


仔細閱讀文檔後發現這裏有文章。java


我原來混淆的javascript object/array(其實就是dom) 和jqeruy object/ array這兩個概念jquery

其實javascript的對象和數組和jquery的是相互不能識別的。 數組

當我發現了這個」祕密「以後,就大概明白爲何須要get 方法了app


.get(): Retrieve the DOM elements matched by the jQuery object.dom

這是官網的定義。就是把jquery 對象轉爲dom 對象。 全部的dom對象都是能夠被javascript所使用的。這裏jquery其實就是經過get這個機制來順利過渡二者。ide


因此咱們回頭看上面這個例子 this

map 返回了jquery array 而後經過get方法轉爲javascript dom array。 最後調用join方法變爲string.url

相關文章
相關標籤/搜索