如何从全局作用域访问函数中的变量?
How can I access variables in a function from the global scope?
我不能从全局作用域访问函数中的变量。通常我可以访问其他函数中的变量。
如何在全局作用域中使用以下代码中的str
变量?
<html>
<script>
function myf(){
str = "Change";
document.write(str);
}
document.write(str); // can not access str
</script>
<input type="button" value="OPEN" onclick="myf();">
</html>
全局声明str
以显式设置其作用域。
var str;
function myf(){
str = "Change";
document.write(str);
}
myf();
document.write(str); // can access str
请记住,如果不调用myf()
, str
的值仍然是undefined
。
function myf() {
return "Change";
}
document.write(myf());
或者如果你需要状态:
function myf() {
var state = "Change";
return {
get_state: function () {
return state;
},
set_state: function () {
//
}
}
}
var f = myf();
document.write(f.get_state());
你做的方式…除了你必须按正确的顺序运行代码。
当前位置:
-
定义(但不运行)设置
str
并将其写入文档的函数(在此过程中删除现有文档) - 尝试使用 变量
- 点击运行该函数的按钮并给变量一个值
您必须交换最后两个任务的顺序…并停止在函数中使用document.write
。
在使用变量之前声明它们也是一种很好的做法(在JavaScript严格模式下也是必需的)。您应该将var str
放在脚本的顶部。
相关文章:
- 带有两个变量函数的Ajax提交表单
- 设置变量函数不起作用
- 为什么使用 ||在变量函数声明中
- Javascript 变量函数不保留值
- 为什么要在函数定义之外引用静态变量(函数属性)
- jQuery 变量函数无法运行
- 循环中的变量函数定义
- javascript onclick设置为变量函数名
- JavaScript:调用已启动类(数据包处理程序)的变量函数
- Javascript测试存根全局变量函数
- Aptana能否识别其他文件中定义的变量/函数
- jquery将其传递给变量函数
- 传递一个变量函数到数组[Javascript]
- 如何使用' this '像一个对象,并通过字符串获得它的变量/函数
- javascript变量/函数的首字母是什么意思?
- Javascript .apply带有变量函数名
- 在JavaScript中添加一个全局变量/函数(特别是NativeScript)
- 变量函数未定义错误
- AngularJS-继续检查变量/函数
- Javascript从本地向全局变量函数添加行