javascript 函数参数传递的问题....

function inArray1(needle,array,bool){    
    if(typeof needle=="string"||typeof needle=="number"){    
        for(var i in array){    
            if(needle===array[i]){    
                if(bool){    
                    return i;    
                }    
                return true;    
            }    
        }    
        return false;    
    }    
}    
function sffjg(num){
............
}
请问如何把array[i]中的i传递给num?

1 同样都是值传递为什么可以给对象加属性?
当参数为对象是,就不只是值传递而是引用传递了。所以楞以通过obj.name改变原对象的属性。
2 还有后面的var obj是把前一个obj覆盖了吗?
是的,当你再次var obj=new Object()的时候,会让js引擎将obj作为一个新的变量,参数obj在后面的代码中已经无效了。
3 左边错误没有输出。右边正常,变量声明放在使用的后面只有值类型的变量可以吗?
在js中,变量的声明永远都需要放在变量使用前,右边的结果参见上面2的说明。左边出错,是因为在执行到kk.name = 5的时候,会先检查变量kk是否存在,若不存在,当然不能调用它的name属性了,所以后面的代码都不会再执行。而在右边,kk=5相当于var kk = 5;所以可以在后面使用alert(kk)输出,但是再后面的代码 var kk 则会覆盖前面的kk变量(也就是说kk不再是5,而是一个新的变量了)。
温馨提示:答案为网友推荐,仅供参考