我是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);
在代码中查看我的评论。我们如何使用[]
访问数据属性;它不是阵列,对吗?
答案 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".