代码之家  ›  专栏  ›  技术社区  ›  Ariod

JavaScript中的变量作用域(Dojo)

  •  2
  • Ariod  · 技术社区  · 15 年前

    我有以下代码:

    <div dojoType="dijit.form.Button">
        <script type="dojo/method" event="onClick" args="evt">
            console.dir(lastSelectedItem);
        </script>
        Rename
    </div>
    
    <div dojoType="dojo.data.ItemFileReadStore" url="/js/treeData.json" jsId="ordJson"></div>
    
    <div dojoType="dijit.tree.ForestStoreModel" rootLabel="Order" store="ordJson" jsId="ordModel"></div>
    
    <div dojoType="dijit.Tree" id="ordTree" model="ordModel">
        <script type="dojo/method" event="onClick" args="item">
            lastSelectedItem = item;
        </script>
    </div>
    

    谢谢。

    2 回复  |  直到 15 年前
        1
  •  4
  •   Matti Virkkunen    15 年前

    var 在当前范围中定义变量。如果您在一个函数(事件处理程序是函数)中,它将定义一个仅存在于该函数中的局部变量。如果你在一个函数之外,它定义了一个全局变量。

    离开 赋值给不存在的变量时,out总是定义一个全局变量。我个人更喜欢用 变量 ,或使用 window.foo 变量 我不小心出去了。

        2
  •  -1
  •   Chuck Vose    15 年前

    噢,我回答得太不精确了,我会得到反对票的。对我来说,我认为var重置了作用域,所以它只对同一作用域中的其他人可用。