Я новичок в javascript, и мне интересно цитировать ключи в сокращении объекта.
Поэтому я использую библиотеку OpenLayers js, и многие конструкторы объектов принимают {options}
в качестве аргумента для установки различных переменных, обратных вызовов и т. д.
В моем коде у меня есть куча объектов управления, которые используются для управления картой и еще чем-то.
controls = {
navigation : new OpenLayers.Control.Navigation({'autoActivate' : false}),
zoom_out_box : new OpenLayers.Control.ZoomBox({
alwaysZoom : true,
out : true
}),
...
};
В некоторых из своих примеров они используют одинарные кавычки для ключей, а в других они не будут использовать {'ascending':false}
или {visibility: false}
.
Я подумал, что, возможно, это связано с зарезервированными словами или функциями, а не с переменными, но я могу добавить функции в окно масштабирования:
controls= {
zoom_out_box : new OpenLayers.Control.ZoomBox({
if : function(e){alert('blah');}
}),
zoom_out_box_2 : new OpenLayers.Control.ZoomBox({
'if' : function(e){alert('blah');}
})
};
Я тестирую его с помощью onlclick="controls.zoom_out_box.if(this)"
, и он отлично предупреждает, и я не получаю предупреждений или ошибок в firebug.
Так какая разница в цитировании?