簡體   English   中英

javascript-從函數外部訪問並更改var的值

[英]javascript - access and change the value of the var from outside the function

我可以從函數外部訪問和更改var的值嗎?

    var ArrowFlag = "1";

     $('input, textarea, select').focusin( function() {
        var ArrowFlag = "0"; 
        //console.log(ArrowFlag) will = 0
     });

    $(document).bind('keyup', function() {
    // When input:focus console.log(ArrowFlag) will = 1
    });

input:focus事件后,var ArrowFlag的值應為0

但是,當您在input:focus之后有keyUp事件時,var的ArrowFlag值將為1 為什么? 看起來我的var ArrowFlag從未更改過它的值。

這都是關於可變范圍的。 var ArrowFlag = "0"刪除“ var”,然后閱讀http://coding.smashingmagazine.com/2009/08/01/what-you-need-to-know-about-javascript-scope/其他相關文章之一-您會很高興的。

您已經定義了兩個單獨的變量ArrowFlag ,如果您希望它們成為同一個變量,請從focusin回調中的一個變量中刪除var:

 var ArrowFlag = "1";

 $('input, textarea, select').focusin( function() {
    ArrowFlag = "0"; 
    //console.log(ArrowFlag) will = 0
 });

$(document).bind('keyup', function() {
    // after focusin ArrowFlag will now be 0
});

示例-http://jsfiddle.net/yyLPE

在javascript變量的作用域范圍內,您要在focusin匿名函數內聲明另一個ArrowFlag ,該函數隱藏外部的ArrowFlag 您無需再次聲明ArrowFlag (通過使用var ),請嘗試以下操作:

var ArrowFlag = "1";
 $('input, textarea, select').focusin( function() {
    ArrowFlag = "0"; 
 });

var在當前上下文中聲明一個變量,頂部上下文是DOM窗口。

var放在函數中,以避免在不同的上下文中重新聲明相同名稱的變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM