2014-04-10 2 views
0

내 함수의 크기 매개 변수를 동일한 함수 내에서, 특히 'if'문 내부에서 사용하려고합니다.함수 매개 변수를 같은 함수 내에서 변수로 만들기

function text_size(size){ 
    if (size = '1'){ 
     alert('something') 
    } 
    else if (size = '2'){ 
     alert('something else') 
    } 
} 

이 기능은 (전체 함수를 작성하지 않은) 다른 함수 내에서 호출됩니다

if (newImg.height > 750, newImg.width > 750){ 
    text_size('1') 
} 
else if (newImg.height < 500, newImg.width < 500){{} 
    text_size('2') 
} 

지금에 관해서는 관계없이 항상 매개 변수의 '무언가'를 알려줍니다.

답변

4

짧은 답변 :

변경 if (size == '1'){if (size = '1'){ (그리고 경우 초 동일 할).

긴 않음 :

size = '1'size'1' 설정해, 자바 스크립트 true으로 평가 '1'으로 평가한다. 이렇게하면 첫 번째 if 문 안의 코드가 항상 실행됩니다.

+2

답변의 차이점을 설명하면 도움이 될 수 있습니다. – Andy

+0

감사합니다. @ 앤디, 내 대답을 편집했습니다. – Tzach

2
function text_size(size){ 
    if (size === '1'){ 
     alert('something') 
    } 
    else if (size === '2'){ 
     alert('something else') 
    } 
} 

= ==

===의 좌우 조건 사이 단언 타입 == 같이 수행 할뿐만 아니라, 체크 가변

== 값을 할당 (문자열, 정수 , 등)

2
if (newImg.height > 750, newImg.width > 750){ 
    text_size('1') 
} 

는 수 (논리적으로 사용하고한다) 또는 그 || :

if (newImg.height > 750 && newImg.width > 750){ 
    text_size('1') 
} 
@Tzach 말했듯이 당신은 대신 size == '1'를 사용할 필요가
if (size = '1'){ 

에서
+0

수정 해 주셔서 감사합니다. – user2315641

0

는 문제가 온다.

왜? '='을 하나만 사용하면 다음과 같은 의미가됩니다.

var size = 0; 
if (size = 1){...} 
alert(size); //size is now equal to 1 

var size = 0; 
if (size == 1){...} 
alert(size); //size is equal to 0 
관련 문제