不带括号调用 JavaScript 函数的第七种方式

不带括号调用 JavaScript 函数的第七种方式

💡 原文中文,约2400字,阅读约需6分钟。
📝

内容提要

本文提供了一种新的有趣方法,可以滥用 JavaScript 功能以产生意想不到的结果,通过模板字符串可以传递多个参数,使用 setTimeout.call、[].sort.call 和 Reflect.apply 可以调用函数,使用 window.name 来隐藏有效载荷。

🎯

关键要点

  • 文章介绍了一种利用 JavaScript 特性产生意想不到结果的新方法。
  • 通过模板字符串可以传递多个参数,使用 setTimeout.call、[].sort.call 和 Reflect.apply 来调用函数。
  • 使用 window.name 来隐藏有效载荷,增强了对 JavaScript 的理解。
  • 标记模板字符串可以将字符串作为数组传递给函数,且占位符会作为新参数添加。
  • 可以使用自定义函数来观察参数传递的行为。
  • setTimeout 的第一个参数可以通过 setTimeout.call 来绕过限制,但需要正确的上下文。
  • 使用 [].sort 和其他数组方法可以避免非法调用错误。
  • Reflect.apply 方法可以用于调用几乎任何函数,并且可以通过 window.name 隐藏有效载荷。
  • 结论是模板字符串支持这种行为,允许开发者探索 JavaScript 的新用法。
➡️

继续阅读