字符串的值为“Error”某种保留字吗?

时间:2013-09-06 20:45:50

标签: javascript reserved-words

所以我的页面上有以下一行Javascript:

form.display.value = 'Error';

其中display是我页面上文本类型的输入:

<input type="text" id="calcDisplay" name="display" maxlength="25">
在Chrome中

可以正常工作,使输入元素的值为“Error”。但在IE 10和Firefox中,输入的内容如下:

function Error() {    [native code]}

有谁可以解释这里发生了什么以及为什么?

更新:这是被调用的实际函数:

function compute(form) {
   try {
      form.display.value = eval(form.display.value);
   } catch(e) {
      form.display.value = 'Error';
   } 
}

以下是视频,所以你们不要以为我疯了:

http://screencast.com/t/sq9xXrnf

1 个答案:

答案 0 :(得分:2)

当值Error已经在输入中时,此行:

form.display.value = eval(form.display.value);

...将评估您之前定义的函数Error。因此,必须在第二次调用compute函数时进行此操作。

请注意,浏览器与eval的工作方式不一致,这就是您看到浏览器差异的原因。