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

如何在javascript中更改函数内的变量声明,javascript,Javascript,我在其中声明了一个函数和一个局部变量,我不想将它声明为全局变量,因为有些函数也使用它的默认值 function default() { var val="me"; //others..... } 除了使用原型之外还有其他方法吗 function default(value) { var val=value; //others..... } 大概 default.prototype.val = "you"; 重新构造您可以对参数使用默

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

 function default()
 {
      var val="me";
      //others.....
 }
除了使用原型之外还有其他方法吗

 function default(value)
 {
     var val=value;
     //others.....
 }
大概

 default.prototype.val = "you";

重新构造

您可以对参数使用默认值

function default(value ="you")
 {
     var val=value;
     //others.....
 }

用法是这样的

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

您可以将默认值用于参数

function default(value ="you")
 {
     var val=value;
     //others.....
 }

用法是这样的

default(); // value will be "you"
default("me"); value will be "me"
函数名{
返回“我”
}
console.log(name())
console.log(名称(“您”))
函数名{
返回“我”
}
console.log(name())

console.log(name(“you”)
否。无法在函数(
var myVar
)中声明变量,然后在函数结束后访问它。这是因为变量是在函数的词法范围内创建的,在函数的词法范围外未定义。以下是有关范围界定工作原理的更多信息:

对于您建议的解决方案
default.prototype.val
,这不起作用,因为default是一个函数,没有属性或原型。这是一个物体应该有的东西


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

否。无法在函数(
var myVar
)中声明变量,然后在函数结束后访问它。这是因为变量是在函数的词法范围内创建的,在函数的词法范围外未定义。以下是有关范围界定工作原理的更多信息:

对于您建议的解决方案
default.prototype.val
,这不起作用,因为default是一个函数,没有属性或原型。这是一个物体应该有的东西

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

试试这个

函数defaultfun(value=”“){
var val=“me”;
警报(“新值:“+value+”\n旧值:“+val”);
}
defaultfun();
defaultfun(“你”)试试这个

函数defaultfun(value=”“){
var val=“me”;
警报(“新值:“+value+”\n旧值:“+val”);
}
defaultfun();

defaultfun(“你”)这很好,它解决了当前的问题,但不能用于更深层次的目的。像函数default(){var val=“me”;var childfunction=function(){var something='';}}@bdalina会有什么问题?我没有看到任何问题。函数看起来像这个函数测试(value,value2,value3,value4),答案是使用对象函数测试(value={}),其中value{'val1':'asd','val2':'asfas',等等。}这很好,它解决了当前的问题,但它不能用于更深层次的目的。像函数default(){var val=“me”;var childfunction=function(){var something='';}}@bdalina会有什么问题?我没有看到任何问题。函数看起来像这个函数测试(value,value2,value3,value4),答案是使用对象函数测试(value={}),其中value{'val1':'asd','val2':'asfas',等等。}感谢链接,我看到了一个json对象,可能会有所帮助。您的链接非常有用!谢谢你的链接,我看到了一个json对象,这可能会有所帮助。你的链接非常有用!