2013-05-22 89 views
3

微軟允許設置環境變量在JScript語法如下:函數的返回值在JavaScript中可以是左值嗎?

var sh = WScript.CreateObject("Wscript.Shell"); 
var env = sh.Environment("PROCESS"); 
env("TEST") = "testvalue"; 

我想知道第三行 - 和我的JSLint,要求該行「壞分配新建分配FY」。

但它的工作!

ECMAscript標準兼容是否有函數的返回值作爲左值(如此處)?

如果是:如何寫一個這樣的函數?

+0

酷!請將該代碼段(連同官方文檔的鏈接)作爲我的[*真實世界中引用參考*問題的函數示例]的答案(http://stackoverflow.com/questions/13124417/real-world-examples -of-ecmascript-functions-returning-a-reference) – Bergi

回答

6

是的,該標準允許函數返回引用。不,你不能在Javascript中編寫這樣的函數。 ;)

< ...>作業的左側操作數預計會產生一個參考。 < ...>允許函數調用返回引用。這種可能性純粹是爲了主機對象而承認的。本規範定義的內置ECMAScript函數沒有返回引用,也沒有規定用戶定義的函數返回引用。 http://es5.github.io/#x8.7

+0

但你可以做的是設置對象的屬性,返回的參考點爲'ret(「sth」)。someProp =「sth」' – C5H8NNaO4

+0

這很快,恰恰是我正在尋找的答案。謝謝。 – rplantiko

+1

@ C5H8NNaO4:這並不意味着'ret()'返回一個引用。引用是一對'[base,prop]',該函數只評估基本部分。 – georg