9

なぜこれがうまくいかないのか、私はちょっと興味があります

JavaScript:

function evaluate(){
    console.log(42);
}

HTML:

<a onclick="evaluate()">Click Me!</a>

html側のどこかに予約されたキーワードを評価していますか?

4

3 に答える 3

3

document.evaluateXMLの解析に必要です。MDNのリファレンスを参照してください

于 2013-02-07T16:11:23.727 に答える
3

EvaluateはJavaScriptの予約語ではなく、 XPathdocument.evaluateを評価するために使用されます。

evaluateイベントハンドラーをアタッチするための目立たない方法を使用した場合でも、関数に名前を付けることができます。

var evaluate = function (){
    console.log(42);
}

document.addEventListener('click', evaluate, false);

于 2013-02-07T16:33:55.580 に答える
3

"evaluate" は予約済みのキーワードではありませんが、インラインevaluateイベント ハンドラーで使用すると、たまたまドキュメントの関数と衝突します(オブジェクトはオブジェクトの前にdocumentハンドラーのスコープ チェーン内にあります)。関数名を変更したくない場合は、その前にコンテキストを追加してください。windowwindow

<a onclick="window.evaluate()">Click Me!</a>

于 2013-02-07T16:10:37.597 に答える