4

この行が評価されると、エラーが明らかになります。

color && el.style.color = color;

どうしたの?DOM レベル 2 のプロパティは「読み取り専用」になりましたか?

4

3 に答える 3

6

問題は優先順位です。親が必要です。

function log(msg, color) {
    var el = document.createElement('p');
    el.innerText = msg;
    document.getElementById('log').appendChild(el);
    color && (el.style.color = color);
}

&&はよりも優先順位が高い=ため、括弧がないと、式に割り当てようとすることになります(たとえば、効果的に読み取ります(color && el.style.color) = color;)。もちろん、これはできません。

于 2012-05-27T16:22:40.140 に答える
1

Mark Linusに同意しますが、コードを次のように書き直すこともできます。

color && (el.style.color = color)
于 2012-05-27T16:20:17.660 に答える