使用array square []括号访问插件原型函数

时间:2015-04-07 07:56:12

标签: javascript jquery

我是JS的新手,我刚刚学习了modal.js的语法。基本上我有一个小难度,很多经典的JS插件使用下面的插件代码:

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); 

在代码中查看我的评论。我们如何使用[]访问数据属性;它不是阵列,对吗?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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".