2015-04-07 60 views
0

嘿傢伙我很新的JS和我只是經歷了modal.js的語法,基本上我有一個小難度,很多經典的js插件使用下面的骨架該插件代碼:訪問插件原型函數使用數組square [] brakets

var Modal = function(element , options){ 
    this.options = options 
    this.$body = $(document.body) 
    this.$element = $(element) 
    this.isShown = null 
    this.$backdrop = 
    this.scrollbarWidth = 0 
    } 


    Modal.prototype.toggle = function (_relatedTarget) { 
     // do something 
    } 

    Modal.prototype.show = function (_relatedTarget) { 
     // do something 
    } 


var data = new Modal(somthing , radnom); 

          // now if we assume that option is "show" , 
          //the show function in Modal will be executed 
          // but my question is data is not an array , so how can we use 
          // [] square brackets to access the properties of Modal/data ?? 
data[option](_relatedtarget); 

現在我的問題是關於訪問插件的屬性,看看功能正在使用以下語法叫:

data[option](_relatedtarget); 

看到我的代碼中的註釋。我們如何使用[]訪問數據的屬性,它不是一個數組嗎?

謝謝。

Alex-Z。

+0

'[]'是一個屬性存取操作符,就像'.'。 – Xufox

回答

1

[]不只是陣列

可以使用[]在對象上訪問屬性了。

您可以使用

  • data["show"]訪問show方法

OR

  • data.show這是同樣的事情

一個優勢[]的是,你可以在括號

var option = "show"; 
data[option](something); // call the `show` method on `data` 

如果你知道使用.你要調用該方法,更漂亮看在代碼中使用的變量

data.show(something); // much quicker (to type), and prettier 
+0

我不會[這個東西](http://i.imgur.com/lyjRXD3.png)起來。人們實際上在互聯網上向[我](https://github.com/naomik)這樣談話。 – naomik

1

JavaScript有數組:

var anArray = [ 1, 2, 3, 4 ]; 

和關聯數組(也稱爲映射):

var anAssociativeArray = { first: "No. 1", second: 2, somethingElse: "Other" }; 

這些數據結構的兩個可以通過[]進行訪問:

anArray[3]     // will get the element of the array in position 3 
          // (starting counting frrom 0). 
anAssociativeArray['first'] // will get the element of the associative array with the 
          // key 'first'. 

關聯數組,也可以經由.key表示法來訪問:

anAssociativeArray.first // will also get the property with key 'first'. 

如果您知道要訪問的密鑰但可以使用.表示法如果你想動態選擇哪個鍵,那麼你需要使用[]表示法。

var whichOptionToPick = 'somethingElse'; 
var value = anAssociativeArray[ whichOptionToPick ]; // will get the value "Other". 
+0

imo,我認爲它不適合在JavaScript中調用對象「關聯數組」或「地圖」 – naomik