我尝试在$(document).ready(function()
内设置全局变量
$(document).ready(function(){
$(".editCommentLink").on("click", function (e) {
e.preventDefault();
var window.comment_id = $(e.target).attr("id");
它引发错误:
var window.comment_id = $(e.target).attr("id");
Uncaught SyntaxError: Unexpected token .
当尝试将var comment_id
放在其他地方时,它会不断报告undefined
答案 0 :(得分:1)
不需要Var。只需使用window.global_variable = “your_value”
有关javascript中变量作用域的更多信息,请阅读MDN lexical scope的以下文章
答案 1 :(得分:1)
window.myVar
或window["myVar"]
是引用全局变量的显式方法。
如果变量在函数外部声明(带有或不带有“ var”),或者在函数内部声明而不使用“ var”,或者声明为window.myVar
或{ {1}}
通过为变量赋值或使用关键字var来声明变量。
将全局变量称为window["myVar"].
很有用的一种情况是,如果您在一个具有名为window.myVar
的局部变量的函数中,则myvar.
指的是局部变量,而myVar
则是全局变量。
window.myVar
表示该变量是在全局范围内声明的。这意味着任何JS代码都可以访问此变量。
使用window.variableName
不是必需的,但通常用作约定,以表示变量是全局变量。
通常应避免使用全局变量。您应该在函数范围内定义变量。
答案 2 :(得分:0)
您应该在var
中省略var window.comment_id = ...
一词。
答案 3 :(得分:0)
@ SomePerformance和@ Li357的评论完美描述:
您不能使用var声明属于另一个属性的变量。只需分配给dot属性即可
您可以访问directly
或使用window.Variableanme
JavaScript具有两个作用域-全局和局部。在函数外部声明的任何变量都属于全局范围,因此可以从代码中的任何位置访问。每个函数都有自己的作用域,并且只能从该函数和任何嵌套函数访问该函数内声明的任何变量。由于JavaScript中的本地范围是由函数创建的,因此也称为函数范围。当我们将一个函数放到另一个函数中时,就会创建嵌套作用域。