我有一个函数和在其中声明的局部变量,我不想将其声明为全局,因为某些函数也使用其默认值
function default()
{
var val="me";
//others.....
}
除了使用原型设计之外还有其他方法吗?
function default(value)
{
var val=value;
//others.....
}
之类的,
default.prototype.val = "you";
重新收缩法
答案 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");