La risposta è nella documentazione si è collegato a:
Il valore si può accedere anche attraverso questa parola chiave, ma Javascript avvolgerà sempre questo valore come un oggetto anche se è una stringa semplice o un valore numerico.
Tutti i valori sono incorporati negli oggetti quando si accede come this
.
La vera ragione si possono trovare in questa linea di jQuery source:
callback.call(obj[ i ], i, obj[ i++ ]) === false) {
Puoi confrontarlo con
(function(){console.log(this)}).call(1);
che costruisce una Number
, perché non si può chiamare una funzione su qualcosa quello non è un oggetto.
Da MDN on the call function:
thisArg:
noti che questo non può essere il valore effettivo visto dal metodo: se il metodo è una funzione in non-rigido codice modalità, null e undefined sarà sostituito con l'oggetto globale e i valori primitivi saranno in scatola.
Gli unici vantaggi che avrei visto nel usando this
invece di valueOfElement
sono:
- semplicità: non c'è bisogno di tenere a mente l'ordine degli argomenti forniti al callback
- capacità di utilizzare una funzione direttamente sul
this
anche se valueOfElement
è di tipo primitivo
fonte
2012-10-29 14:15:59
Ok, sarebbe vantaggioso usarne uno rispetto all'altro? valueOfElement vs this, that is. – Johan
Ottima spiegazione! –
Cosa stai facendo ?! Smettila di migliorarlo! Va bene: D – VisioN