Я рассматривал множество примеров, когда люди используют функцию .sort() в jQuery.
Итак, например:
$('#myId').sort(..);
Я не могу найти документацию для sort() в jQuery api, может ли кто-нибудь указать мне на нее?
Ответ 1
Поскольку он не является частью jQuery (официально), но является проксированным Array.sort.
Как указывает Дерек, jQuery(...) не возвращает массив. Скорее, jQuery добавляет прокси, чтобы объект jQuery "действовал как массив":
// For internal use only.
// Behaves like an Array method, not like a jQuery method.
push: push,
sort: [].sort, // <-- here
splice: [].splice
Этот прокси работает, потому что this в функции определяется объектом, на который была вызвана функция. И, кроме того, Array.sort (и Array.splice) работают с любым this, который является "подобным массиву" (имеет length и предположительно свойства 0..length-1). Ниже приведен пример пользовательского объекта [ab] с помощью Array.sort:
var a = {0: "z", 1: "a", length: 2, sort: [].sort}
a[0] // -> "z"
a.sort() // in-place modification, this === a
a[0] // -> "a"
a instanceof Array // -> false (never was, never will be Array)
YMMV в соответствии с примечаниями "Только для внутреннего использования".