如何在javascript中更改函数内部的变量声明

时间:2017-06-30 09:27:59

标签: javascript

我有一个函数和在其中声明的局部变量,我不想将其声明为全局,因为某些函数也使用其默认值

 function default()
 {
      var val="me";
      //others.....
 }
除了使用原型设计

之外还有其他方法吗?
 function default(value)
 {
     var val=value;
     //others.....
 }

之类的,

 default.prototype.val = "you";

重新收缩法

4 个答案:

答案 0 :(得分:1)

您可以使用参数的默认值

default(); // value will be "you"
default("me"); value will be "me"

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Default_parameters

用法将是这样的

{{1}}

答案 1 :(得分:1)



function name(s) {
	return s || "me"
}

console.log(name())
console.log(name("you"))




答案 2 :(得分:1)

没有。无法在函数(var myVar)内声明变量,然后在函数结束后访问它。这是因为变量是在函数的词法范围内创建的,并且在它之外是未定义的。以下是有关范围界定的更多信息:https://scotch.io/tutorials/understanding-scope-in-javascript

至于你提出的解决方案default.prototype.val这不起作用,因为默认是一个函数,没有属性或原型。这是对象所具有的东西。

正如其他人所指出的那样,你可以传入一个变量或使用默认值,但似乎你要求访问在函数内部创建的变量并且这是不可行的。您需要返回值或传入由函数修改的变量。

答案 3 :(得分:1)

尝试这个



function defaultfun (value="") {
  var val = "me";
  alert("new value:"+value+"\n old value:"+val);
}
defaultfun();
defaultfun("you");