0

以下のコード例では、コードが機能するために、 childという変数がグローバル ( no var ) でなければならない理由を知りたいです。また、グローバル変数があるために以下のコードが悪い習慣と見なされるかどうか、および以下のコードのより適切な表現がどのように見えるかについても知りたいです。ありがとう。

<!DOCTYPE html>
<meta charset="UTF-8">
<title>dom</title>

<div class="product">
<h2> Product Name </h2>
<img src="pic.jpg" />
<p> Description </p> </div>

<script>
var products = document.getElementsByClassName("product"), 

        child;   // how come var breaks the code ?

    for ( i = 0; i < products.length; i++) {
        child = products[i].firstChild;
        while (child.nodeType !== 1) {
            child = child.nextSibling;
        }
        console.log(child);
    }
</script>
4

1 に答える 1

1

varchild の前にコンマがあるため、既に があります。したがって、追加varすると

var product, var child

これは違法です。

childはグローバルではありませんvar

var product, child

に続く変数のリスト全体に適用されますvar。(ええと、childそれは a にネストされていないので、とにかくグローバルですfunction。しかし、それは と関係があるvarかどうかとは関係ありませんvar。)

どうしてもvar2回したい場合は書いてください

var product = ... ;
var child;
于 2012-09-01T09:01:06.607 に答える