2014-02-07 39 views
11

我審查的朋友一個外包項目,在每個頁面的頂部非常奇怪的Javascript代碼塊的權利。 顯然它不會做任何事情但它是如此迷幻我不禁納悶首都F」怎麼走過來的:暗紋嵌套「與」語句

(function() { 
    with (this[2]) { 
     with (this[1]) { 
      with (this[0]) { 
       return function(event) {}; 
      } 
     } 
    } 
}) 

除非我失去了一些東西開發者必須要受到某種安非他明的影響,以便自行生產,所以我假定它是自動化工具的遺骸,但不能爲我的生活想象一個有用的場景。

任何人都可以對此有所瞭解嗎?有沒有人遇到類似的東西?


這絕對是積極一切與例外開口<script>標籤從文檔中的字節爲零。如前所述,我知道它並沒有做任何事情 - 即使表達式執行this將是windowglobal它不會有任何數字指數,因此它在第一行失敗。

我知道,with作爲一個概念極不理想很多,作爲一個惡作劇,它並不好笑。我會留下這個問題 - 也許某個地方的某個猴子會知道這個問題。

+2

遺蹟? – j08691

+2

這是整個代碼還是更多? –

+1

不建議使用with語句 – Satpal

回答

0

根據[MDN] [1]的用語句用於包括對象進入中的語句。
我只是碰到在Chrome類似的代碼絆倒了。
我犯了一個錯誤,使用「in」關鍵字作爲var/object,它將我的代碼替換爲嵌套的「withs」,它僅替換了開發工具源文件中的代碼。
所以這是一個調試器,將與報表在其代碼很可能用於組織JS的層次,它遇到了「中」,發現沒事找的東西。 我放棄了對文件(我正在測試SSE和...失敗),所以我現在試圖重新創建錯誤。

+1

非常感謝參與......但我的問題不是*「與'是什麼意思?」* - 我感興趣的是什麼樣的反思 - 也許是自我消化 - 算法在這個頂部留下了這種可憎的東西該文件以及它在生命週期中試圖完成的內容。 – Emissary

2

這可能是有趣的......它似乎來自調試器。哪個調試我不知道,也不知道爲什麼會這樣添加奇數碼:

Why is this function being undone?

也許你會問斯科特離職?

之所以這麼說,我個人更喜歡用類人猿的後裔......

請注意:這個問題肯定是相當隨機的,但我特別喜歡的事實(至少部分)答案發現已經存在StackOverflow ...?!有沒有什麼是沒有答案的,它變得像那些從不喜歡承認自己不知道的人一樣!一個minifier的