使函数参数成为同一函数中的变量

时间:2014-04-10 11:07:44

标签: javascript

我想传递我的函数的 size 参数,以便在同一个函数中使用,特别是在'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 个答案:

答案 0 :(得分:4)

简答:

if (size = '1'){更改为if (size == '1'){(对于第二个,请执行相同操作)。

更长的回答:

size = '1'size设置为'1'并评估为'1',在javascript中评估为true。这使得第一个if语句中的代码始终运行。

答案 1 :(得分:2)

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

=为变量赋值

==在==

的左右条件之间进行断言

===做= =但也要检查类型(字符串,整数等)

答案 2 :(得分:2)

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

应该是(逻辑地使用,for或for ||):

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

答案 3 :(得分:0)

正如@Tzach所说,问题来自

if  (size = '1'){

您必须改为使用size == '1'

为什么呢?因为如果你只使用一个'=',意味着你正在做一个配合:

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