2014-09-11 70 views
0

我想創建一個對象與裏面的選擇器。第一個是我想在對象本身中使用的上下文選擇器。如何在對象內引用該鍵?如何在Javascript中創建對象時引用一個鍵?

var options = { 
      elements: { 
       "context": $('form#someForm'), 
       "someDropdown" : $("#someDropDown", this.context), 
       "someContainer" : $('div#someContainer', this.context), 
      }, 
      constants: { 
       buttonImageLocation : 'image.jpg' 
      }   
     }; 

感謝

+0

''someDropdown「:$(」#someDropDown「,$('form#someForm')),'??爲什麼嘗試使用「'this.context'」?這個問題可能還有更多。 (){...}() – davidkonrad 2014-09-11 11:36:38

回答

1

的JavaScript創建爲每個函數一個新的範圍,而不是爲每個塊。所以在你的情況下,this指的是窗口,並且由於窗口沒有context,所以它是未定義的。你可以這樣做:

var options = { 
    element: new (function() { 
     this.context = $('form#someForm'); 
     this.someDropdown = $("#someDropDown", this.context); 
     ... 
     return this; 
    })() 
} 
+0

'直接調用該函數。沒有調用它,你的元素屬性將是一個函數,而不是一個對象。 – 2014-09-11 11:45:38

+0

嗨,我剛剛嘗試過它,它的工作原理,但我沒有console.log(options.elements),它給了我一個窗口內的所有東西的大清單,而不是對象本身內的東西。我的問題是,如果我在對象之外創建上下文變量然後引用它,性能會更好嗎?或者這種新方法更快嗎? – 2014-09-11 11:53:59

+0

當我做console.log它給我對象{選擇器:窗口},而不是對象{選擇器:對象}。我只是質疑這個:) – 2014-09-11 11:55:38

相關問題