2012-06-08 3 views
24

사람들이 jQuery에서 .sort() 함수를 사용하는 많은 예제를 살펴 보았습니다. 그래서 예를 들어jQuery .sort() 문서는 어디에 있습니까?

: I함으로써

$('#myId').sort(..); 

가 jQuery를 API의 sort()에 대한 모든 문서를 찾을 수없는, 누군가가 날 지점 수 있습니까?

답변

22

jQuery (공식적으로)가 아니기 때문에 프록시는 Array.sort입니다.

Derek가 지적했듯이 jQuery(...)은 배열을 반환하지 않습니다. 오히려 jQuery를 adds a proxy는 jQuery 오브젝트 "배열처럼 행동을"하기 : 함수의 this 함수가 호출되는 객체에 의해 결정되기 때문 프록시 작동

// For internal use only. 
// Behaves like an Array's method, not like a jQuery method. 
push: push, 
sort: [].sort, // <-- here 
splice: [].splice 

. 또한 Array.sort (및 Array.splice)은 "배열 유사"인 this (length 및 아마도 0..length-1 속성을 가짐)에서 작동합니다. 은 "내부에만"메모 다음

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 : 여기 Array.sort를 사용하여 사용자 객체 [AB]의 예이다.

+0

'$ ('# myId')'는 배열을 반환하지 않습니다. –

+0

그렇다면이 프록시 때문에 .toArray()를 수행 할 필요가 없다는 뜻입니까? – foreyez

+1

@foreyez : 아니요.'sort()'는'this'를 리턴하고,'push()'는 길이를,'splice()'는 새로운'Array'를 리턴합니다. – Bergi

관련 문제