2014-09-27 44 views
-1

在我的函數每一個的頂部是這一行:如何自動添加一個局部變量的每個功能

var local = {} 

這樣我可以範圍我的變量說

local.x = 1 
local.y = 2 

如何我可以更改所有函數的原型以包含名爲「本地」的空對象嗎?

+8

X-Y問題。告訴我們你實際上想要完成的事情,而不是你試圖用來實現它的技術。 – 2014-09-27 17:44:08

+2

是不是'var x = 1,y = 2'更容易? – Oriol 2014-09-27 17:46:07

+0

Function.prototype.someFunc = local.func ???? – 2014-09-27 17:52:16

回答

1

簡短的回答:你不能(在一個對象中創建局部變量而不是直接在範圍內創建局部變量是非常不尋常的)。這個功能根本不是javascript的一部分。

較長的答案:您可以通過將腳本作爲文本加載,修改文本,然後加載它來做任何事情。但更好的方法是使用SweetJs preprocessor並創建一個覆蓋function關鍵字的宏來爲您完成此操作。

+2

或者,你可以用Esprima解析你的JS,並重寫它以在每個函數中包含你的'locals'變量。事實上你試圖做的事情包括轉換JS,或者使用宏預處理器,希望能讓你停下來。 – 2014-09-27 18:37:51

+1

忘記Esprima。好的。 – 2014-09-27 18:54:43

相關問題