2012-05-10 34 views
0

我希望能夠做到製作對象屬性在「這個」範圍內都有效

console.log(some_value); 

,而不是

console.log(some_object.attributes.some_value); 

有沒有一種方法,使當前可用的對象的屬性'範圍'('範圍'不是我正在尋找的詞,但是我希望你明白我在問什麼)。

我在尋找事端喜歡 '用' 在傳統的ASP,語法,在那裏你可以做

Dim myObject = Server.CreateObject(".......") 
with myObject 
    .method1() 
    .property1 = "Test" 
end with 

問候

+2

在JavaScript中使用'with'是一種糟糕的做法(甚至在嚴格模式下禁用!)。如果您必須經常訪問'some_object.attributes',則將其分配給一個變量。如果你想要一個流暢的接口(如'myObject.method1()。property1 =「Test」'看起來像)實現它! –

+0

我知道,我知道這是件怪事,但我無法改變一半項目完成的方式。另外,我會在需要訪問很多屬性的地方使用它,並且我確信它不會與其他任何內容發生衝突。 – alexandernst

+1

然後,將'some_object.attributes'賦值給變量仍然更清晰。可讀性比避免打字更重要。 –

回答

2

是的,你可以使用with聲明爲:

with(some_object.attributes) { 
    console.log(some_value); 
} 
+0

wau!這很簡單快捷。我從未想過在JS中搜索「with」。謝謝! – alexandernst