SyntaxError:'with'语句在严格模式下无效

时间:2012-08-31 16:04:06

标签: javascript safari with-statement deprecation-warning

当我尝试从断点处执行任何操作时,我在safari控制台中收到此错误。错误报告:https://bugs.webkit.org/show_bug.cgi?id=83267

有没有人有解决方法?由于我假设的原因与此相关,javascript已停止在我的网站上运行safari。

编辑:错误报告还包含repro步骤。

另一个编辑:我没有使用“with”语句。这是safari控制台的一个错误。

2 个答案:

答案 0 :(得分:6)

不推荐使用with(obj) {}语句,因此在严格模式下无效。

要解决此问题,请禁用严格模式,或停止使用with语句!

答案 1 :(得分:2)

ECMAScript 5中的严格模式禁止例如。 with声明。你有两个选择:

  • 禁用严格模式(从文件/函数中删除"strict mode";行)或
  • (首选)避免使用with语句 - 它们有害并且完全不可读。

更多关于John Resig的严格模式:ECMAScript 5 Strict Mode, JSON, and More

您可以在文章中读到严格模式:

  • 使您无法delete变量(例如delete foo;),
  • 限制eval
  • 的使用
  • 为功能添加了一些限制(例如,访问callercallee),
  • 删除with语句,