2013-05-02 1 views
1

언더 코어 .js를 읽으려고합니다. 나는 var each = _.each = _.forEach 방법을 통해 갈 것입니다.Underscore.js의 각 메소드에서 + obj.length의 의미는 무엇입니까?

나는 정확히 같음 (===)을 이해하지만 무엇이 +obj.length을 의미하는지 이해하지 못합니다.

else if (obj.length === +obj.length) 

여기 a link to the code이며, 여기에 전체 방법 :

var each = _.each = _.forEach = function(obj, iterator, context) { 
    if (obj == null) return; 
    if (nativeForEach && obj.forEach === nativeForEach) { 
     obj.forEach(iterator, context); 
    } else if (obj.length === +obj.length) { 
     for (var i = 0, l = obj.length; i < l; i++) { 
     if (iterator.call(context, obj[i], i, obj) === breaker) return; 
     } 
    } else { 
     for (var key in obj) { 
     if (_.has(obj, key)) { 
      if (iterator.call(context, obj[key], key, obj) === breaker) return; 
     } 
     } 
    } 
    }; 
+2

나는'obj.length'가 숫자라는 것을 확신합니다. –

+0

[단항 플러스와 마이너스 연산자의 중요한 용도는 무엇입니까?] 가능한 복제본 (http://stackoverflow.com/questions/5450076/whats-the-significant-use-of-unary-plus-and-minus-operators) – Bergi

답변

1

이 + 단항 연산자이다. 인수를 숫자로 변환합니다. 기본적으로 해당 라인은 obj.length이 숫자인지 확인합니다.

관련 문제