[英]Why Can't I Use JS Function Called 'evaluate' in HTML?
I'm kind of curious why this doesn't work 我有点好奇为什么这不起作用
JavaScript: JavaScript的:
function evaluate(){
console.log(42);
}
HTML: HTML:
<a onclick="evaluate()">Click Me!</a>
Is evaluate a reserved keyword somewhere on the html side? 在html端评估一个保留关键字?
"evaluate" is not a reserved keyword, but when it's used in inline event handler, it happens to collide with document's evaluate
function( document
object is within handler's scope chain before the window
object). “evaluate”不是保留关键字,但是当它在内联事件处理程序中使用时,它碰巧与文档的
evaluate
函数碰撞( document
对象在window
对象之前位于处理程序的作用域链中)。 If you don't want to change your function name, just add window
context before it, ie 如果您不想更改您的函数名称,只需在它之前添加
window
上下文,即
<a onclick="window.evaluate()">Click Me!</a>
document.evaluate
需要解析个XML,看到在MDN参考这里 。
Evaluate is not a reserved word in JavaScript, document.evaluate
is used to evaluate XPath expressions. Evaluate不是JavaScript中的保留字 ,
document.evaluate
用于评估XPath表达式。
You could still name your function evaluate
if you used a less obtrusive method of attaching your event handler: 如果你使用一种不那么突兀的方法来附加你的事件处理程序,你仍然可以命名你的函数
evaluate
:
var evaluate = function (){
console.log(42);
}
document.addEventListener('click', evaluate, false);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.