2011-12-07 49 views

回答

0

人們似乎討厭用()在JavaScript構建,但無論如何...

function f(){return {a:1, b:2};} 
with(f()) { 
    alert(a);//1 
} 


// or 
function combine(propertyNames, values) { 
    var o = {}; 
    for (var i=0; i<propertyNames.length; i++) { 
     o[propertyNames[i]] = values[i]; 
    } 
    return o; 
} 

with (combine(['a', 'b'], [1, 2])) { 
    alert(b);//2 
} 
+0

JS的哪個版本是這個嗎?IE7支持它嗎? – Bill

2

是的,這是可能的,因爲JavaScript 1.7

你可以這樣做:

function f() { 
    return [1, 2]; 
} 

[a, b] = f(); 
+0

不幸的是,需要支持IE7 :( – Bill

+0

我不相信這個工程在Opera。有誰知道這在所有'嚴格模式'工作? – btleffler

+0

在這種情況下,你將不得不避免該功能:( – halfdan

0

我相信這是在JavaScript 1.7引入的。這意味着在大多數瀏覽器中你還不能真正使用它。

[a,b] = [14,15]; 
// or 
[a,b] = [b,a]; 
// or 
[a,b] = someFuncThatReturnsArray(); 

查看MDN瞭解更多詳情。

+0

真的很無助,我需要支持IE7 – Bill