标签: javascript
有人可以向我解释下面的Javascript在构造函数方面做了什么以及它如何使用/调用变量a中定义的函数?
<script> a = 'alert("Hi");' {}["apple"]["constructor"]["constructor"](a)(); </script>
谢谢!
答案 0 :(得分:12)
第一个{}只是一个诱饵,它被解释为空块并被忽略。所以我们有
{}
["apple"]["constructor"]["constructor"](a)()
是
[].constructor.constructor(a)()
Array.constructor(a)()
Function(a)()
(function() { alert('Hi') })()
constructor通过原型解决,这里的结构如下:
constructor