我有两个函数,外部是函数first()和内部是second(),但是当我调用第二个函数并调用第一个函数值的值时,它显示的第二个函数是不确定的。如何在此处调用alert可以帮助您我。实际上我的要求就是这样,代码在这里
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div onclick=second() id="second">Click</div>
function first(){
var x =1 ;
function second(){
alert(x);
}
}
答案 0 :(得分:0)
内部功能在第一个功能范围中定义。如果要调用它,则不应将其用作内部函数。将x定义为全局变量,并在需要时调用第一个或第二个。
var x = 1;
function first(){
x = 2;
}
function second(){
alert(x);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div onclick="second()" id="second">Click</div>
答案 1 :(得分:0)
将x定义为全局变量。
操作方法-在函数外部定义变量,所有函数的作用域都可以访问它。
答案 2 :(得分:0)
嵌套函数是本地函数,您不能从外部范围调用。
<button onclick=first() id="second">Click</button>
function first(){
var x =1 ;
function second(){
alert(x)
}
return second()
}
答案 3 :(得分:0)
您需要将变量定义为Global 这是一个如何在Javascript代码中使用全局变量的示例
function m(){
window.value=100;//declaring global variable by window object
}
function n(){
alert(window.value);//accessing global variable from other function
}
因此,您可以像这样编辑代码:
function first(){
window.value =1 ;
function second(){
alert(window.value);
}
}
答案 4 :(得分:0)
实际上有多种方法可以实现这一目标。如前所述,您可以将变量置于全局范围。
但这是所谓的模块模式的一个很好的例子。您可以通过包装一个嵌套函数来返回嵌套函数:
function first() {
var x = 1;
function second() {
alert(x);
}
return second(x)
}
alert(first());
此模式非常有用,因为它允许您创建所谓的私有变量,只有通过调用某种方法才能访问。