在$(document).ready(function()`内设置全局变量

时间:2018-07-17 01:12:14

标签: javascript jquery

我尝试在$(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

4 个答案:

答案 0 :(得分:1)

不需要Var。只需使用window.global_variable = “your_value”

有关javascript中变量作用域的更多信息,请阅读MDN lexical scope的以下文章

答案 1 :(得分:1)

window.myVarwindow["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中的本地范围是由函数创建的,因此也称为函数范围。当我们将一个函数放到另一个函数中时,就会创建嵌套作用域。