2013-07-05 2 views
4

array.forEach() 메서드를 사용하여 Jquery.each()와 Array.prototype.forEach() 메서드간에 차이가 있습니까? 루프 길이 속성과 같은 개체를 통해 루프. 내가보기 유일한 차이는 인수의 배치, 그 밖의 차이점은 무엇입니까? 무엇 내가 아는 완Jquery.each() 및 Array.prototype.forEach() 메서드의 차이점

I found this: 
var obj = { one:1, two:2, three:3, four:4, five:5 }; 

jQuery.each(obj, function(i, val) { 
    $("#" + i).append(document.createTextNode(" - " + val)); 
}); 

, jquery.each을() length 속성없이 객체의 함수를 호출?

+0

다음은 답변입니다. http://stackoverflow.com/questions/6611190/what-is-the-difference-between-eachselector-and-selector-each – Jalyo

+0

@Jalyo : 아니요 ... –

+1

질문이 변경되었습니다. . 이제 당신은 jQuery의'$ .each'가 어떤 객체를 열거하기 위해 오버로드되는지를 묻습니다. 왜 그냥 시험해 보지 않으시겠습니까? –

답변

15
  • 콜백에 인수를 배치합니다. 콜백의 인수

  • 수량합니다 (.forEach()는 원래 컬렉션에 대한 참조를 얻을 수 있습니다.)

  • 기본 콜백에서 this 값. 수동으로 콜백에 this 값을 설정

  • 능력은 (jQuery를 그것은 .forEach()에서 자바 스크립트의 기본이다, 현재 항목입니다). (jQuery는이 옵션을 제공하지 않습니다. .forEach()은 세 번째 인수를 사용합니다.)

  • 스파 스 어레이에서 정의되지 않은 속성 피하기. 합니다 (.forEach() 그들을 방지, jQuery를 그들을 포함되어 있습니다.) 그들은 매우 다른 방법으로 행동하고


. jQuery는 표준 동작을 준수하거나 무료로 시도하지 않습니다. 미친 기차의 대답에 추가

+1

jQuery.each()는 길이 속성이없는 객체에 대해 function을 호출합니까? –

+0

예 ............ –

5

는 :

이다 내가 알고 완

이 jquery.each을() length 속성없이 객체의 함수를 호출?

소스를 읽기 : 어떤 길이 속성이없는 경우
// args is for internal usage only 
each: function(object, callback, args) { 
    var name, i = 0, 
     length = object.length, 
     isObj = length === undefined || jQuery.isFunction(object); 

    if (args) { 
    ... 

    // A special, fast, case for the most common use of each 
    } else { 

    if (isObj) { 
     for (name in object) { 
     } 
     ... 
    } 
    } 
    return object; 
}, 

그래서 당신이 볼 수있는, 또는 가 정의되지 않은 다음 jQuery를 그것이 일반 객체의와의를 할 것입니다 생각하는 가치가있다. 상속 된 속성에 대한 보호 기능이없는 열거 형 속성을 반복합니다.

관련 문제