2016-11-18 5 views
0

나는 더 짧은이 코드를 작성하려는 : 화살표 문을 사용조건부 연산자와 같은 구문을 줄이는 구문이 있습니까?

var fn = function (a) { 
    if (a) { 
     somefn.call(null, a); 
    } 
}; 

를, 그것은 것입니다 :

var fn = (a) => a ? somefn.call(null, a) : null;// null is dummy code 
: 조건 연산자를 사용하는 경우

var fn = (a) => { if (a) somefn.call(null, a); }; 

내가, 짧은 코드를 원하는

아름답 지 않습니다. 어떤 구문이 있습니까? :

var fn = (a) => a ? somefn.call(null, a); 

감사합니다.

+0

더 짧은 코드에서 어떤 이점이 있습니까? –

+1

'var f = a => a && s.call (null, a);'그것은 당신이 얻는 것만 큼 작지만,'somefn' -''s''과'fn'을 만들 필요가 있습니다. 'f' ...'f'가 전역 범위에 있다면'var '을 삭제하여 여분의 4 바이트를 절약 할 수 있습니다 ... 그래서 이제는'f = a => a && s.call (null, a);'입니다. 'call'을하는'c'라는 함수에 프로토 타입을 만들고'var n = null; '을 선언하면 - f'a => a && s.c (n, a); '- 나는 그것이 가능한 짧을 것이라고 생각한다. –

+0

@ JaromandaX : 코드 골프에 대한 것일까 요? – DrakaSAN

답변

1

a이 사실 일 경우 a을 확인하고이 함수를 호출하는 logical AND &&을 사용할 수 있습니다.

var fn = a => a && somefn.call(null, a); 
0

원본 코드는 충분히 짧아서 "아름답다"고하고 희망대로 할 수 있습니다.

다음과 같이 작성할 수 있습니다. 그러나 이것은 더 나은 코드가 아니며, 이해하기 어렵고 추악합니다 ...

var fn = a ? function(a) { somefn.call(null, a) ; } : function() { }; 
+0

그것은 짧지 않습니다. – Nick