fnTest = /xyz/.test(function(){xyz;}) ? /\b_super\b/ : /.*/;
1
A
回答
5
它根據JS引擎是否在Function.prototype.toString()
中包含函數的源代碼來選擇正則表達式。
該正則表達式用於檢查函數是否使用類方法_super
;如果知道該功能不使用_super
,則包裝器不需要創建super
。
如果Function.prototype.toString()
不返回源,包裝被強制假設函數總是使用_super
;因此,/.*/
,這將永遠匹配。
+0
我覺得你是對的,我要消化它。 – island205 2011-02-15 04:53:27
0
測試使用的方法_super
至少可以說的高度混淆的方式。
注意,對於第二個「始終通過」情況下/.*/
一個微不足道的改進是,以除去貪婪正則表達式匹配*
,使得只有第一個字符匹配。新的正則表達式將是:/.?/
相關問題
- 1. 這段代碼做了什麼?
- 2. 這段代碼做了什麼? (awk)
- 3. 這段代碼做了什麼?
- 4. C++這段代碼做了什麼?
- 5. 這段代碼做了什麼?
- 6. 這段代碼做了什麼?
- 7. 這段代碼究竟做了什麼?
- 8. 這段代碼做了什麼蛇?
- 9. 這段代碼做了什麼?
- 10. Normalized cut:這段代碼做了什麼?
- 11. 這段代碼做了什麼?
- 12. 這段代碼做了什麼?
- 13. 這段代碼究竟做了什麼?
- 14. 這段代碼做了什麼?
- 15. jQuery:這段代碼做了什麼?
- 16. 這段代碼做了什麼?
- 17. 這段代碼做了什麼? 「data.target == this」
- 18. 這個C++代碼段做了什麼?
- 19. 這段代碼做了什麼(C)
- 20. 這段JavaScript代碼做了什麼?
- 21. 這段代碼片斷做了什麼?
- 22. 這段代碼做了什麼?
- 23. 這段代碼做了什麼?
- 24. 這段代碼做什麼錯了
- 25. 這段代碼做了什麼?
- 26. 這段代碼做了什麼?
- 27. 這段代碼做了什麼?
- 28. 這行代碼在這段代碼中做了什麼?
- 29. 這段代碼在這裏做什麼?
- 30. 我的網站被黑了 - 這段代碼做了什麼?
請添加上下文。 – SLaks 2011-02-15 04:13:23