获取函数的变量值而不全局设置它

时间:2015-10-06 14:35:32

标签: javascript jquery

是否可以在函数内部获取变量值而无需全局设置?

我知道这是可能的:

var testvalue;
function setTestValue(){
   testvalue = 30;
}

如果你在setTestValue函数之外console.log,你会得到:30。这很清楚。

但是,是否有可能产生相同的效果,但没有全局变量?

function setTestValue(){
   var testvalue = 30;
}
console.log(testvalue); // will print undefined

我想要这个的原因是因为我无法更改创建此函数的Javascript文件。我只能读它而不是写它所以我需要它一个解决方法。

PS。可能这个问题已经在stackoverflow上被讨厌了,但我真的找不到它。如果有,请提供该问题的链接。谢谢!

2 个答案:

答案 0 :(得分:1)

这是有效的(如果你在函数中的变量之前没有var关键字)

function foo() {
    bar = 10; // variable without var comes under window scope so you can access them outside fuction
}
foo();// you have to call the function to set its value
alert(bar) // window.bar also gives 10

答案 1 :(得分:0)

为什么不在函数中返回var:

function setTestValue(){
   var testvalue;
   do whatever to assign value

   return testvalue;
}

console.log(setTestValue());