我怎样才能使用其他函数变量?

时间:2015-05-08 16:29:01

标签: javascript global

如何在a中使用genTable?它说a is not defined

JS:

function colNum(){
    a=prompt(' The number of columns?');

    if(!parseInt(a))
    {
        console.log("Not number")
    }
}

function genTable() {
    table = document.createElement('table');
    table.setAttribute('id','tbl');
    tr = document.createElement('tr'); 

    for (var i = 0; i < a; i++)
    {
        var th1 = document.createElement('th');
        var text1 = document.createTextNode(i);
        th1.appendChild(text1);
        tr.appendChild(th1);
    }

    table.appendChild(tr);
    document.body.appendChild(table);
}

HTML

<body onload='colNum()'>

1 个答案:

答案 0 :(得分:1)

要在a中使用genTable

  1. genTable一个参数并从colNum

    调用它
    // in function colNum
        genTable(a); // a refers to the variable named a
    // ...
    
    function genTable(a) {
        // a refers to the parameter named a
    }
    
  2. var a;在一个包含colNumgenTable的闭包中,并且在后代闭包中没有var(你当前不是完全使用var

    var a;
    function colNum() {
        // ...
    }
    function genTable() {
        // ...
    }
    
  3. 目前你已经可以访问它了,但这是因为你没有var它,这是一个不好的习惯,因为它可能导致未来代码中的标识符冲突