2012-04-19 193 views

回答

12

「爲什麼更改值what更改值爲arguments[0]?」

因爲這就是它的設計原理。形式參數直接映射到參數對象的索引。

也就是說除非嚴格模式是,和你的環境支持它。然後更新一個不會影響另一個。

function hello(what) { 
    "use strict"; // <-- run the code in strict mode 
    what = "world"; 
    return "Hello, " + arguments[0] + "!"; 
} 
hello("shazow"); // "Hello, shazow!" 
+0

哦......在這種情況下:爲什麼它的設計是以這種方式工作?那麼設計是否在任何地方記錄? (不是我不相信你,當然,我只是想了解更多的細節) – 2012-04-19 02:54:32

+0

哦,等等,我們開始吧:http://www.ecma的* 10.6 Arguments Object *中的「NOTE 1」 -international.org/publications/files/ECMA-ST/Ecma-262.pdf – 2012-04-19 02:56:09

+0

@DavidWolever:該語言是ECMAScript規範中的文檔。在ECMAScript 5中引入了嚴格模式。 – 2012-04-19 02:56:36

相關問題