如何在JavaScript中将字符串值包装在变量中
How to wrap a string value in variable in JavaScript
在下面的函数中,我用选定的图标绘制标记
function addMarkers(name) {
var iconVal = "";
if(name == 'default'){
iconVal = defaultIcon;
}
else if(name == 'school'){
iconVal = 'schoolIcon';
}
marker = new L.Marker(new L.LatLng(a[0], a[1]), { icon: iconVal });
}
我的问题是如何传递如上所述的变量iconVal。有没有像Html.Raw这样的函数?
不要为这些事情使用变量名。使用具有可通过名称访问的属性的对象:
var icons = {
default: new L.Icon.Default(),
school: L.icon({
iconUrl: '@Url.Content("~/Content/custom/schoolpin.png")',
iconSize: [32, 50],
iconAnchor: [16, 50],
popupAnchor: [-3, -76]
}),
test: L.icon({
iconUrl: '@Url.Content("~/Content/custom/testpin.png")',
iconSize: [32, 50],
iconAnchor: [16, 50],
popupAnchor: [-3, -76]
})
};
function addMarkers(name) {
var iconVal = icons[name];
var marker = new L.Marker(new L.LatLng(a[0], a[1]), { icon: iconVal });
}
如果图标是全局变量(我并不建议它们应该是全局变量;请听我说完),您可以访问这样的变量:
marker = new L.Marker(new L.LatLng(a[0], a[1]), window[icon].iconVal);
动态访问局部变量并不是那么简单,所以使用iconVal来保存整个图标对象,而不是"指针"。这是假设CCD_ 1可以直接访问本地图标对象。
function addMarkers(name) {
var icon;
if(name == 'default'){
icon = defaultIcon;
}
else if(name == 'school'){
icon = schoolIcon;
}
marker = new L.Marker(new L.LatLng(a[0], a[1]), icon.iconVal);
}
相关文章:
- 将函数的上下文应用于javascript变量
- 无法导出函数expressjs/requestjs中的变量
- 函数参数中的数据与指定变量之间的任何性能差异
- 将PHP变量传递给jQuery时遇到问题
- 如何在 ajax 调用后更改包装器 JavaScript 函数中的全局变量
- 将 jQuery 函数分配给变量不起作用,但包装它不起作用
- 计算三角形面积-作为变量工作,但不作为函数包装
- 传递给IIFE包装器有多少全局变量是有意义的
- JavaScript:将所有内容包装在变量中有什么优势吗?
- 如何将代码包装到模块中以避免使用全局变量
- 窗口对象上具有全局变量的包装函数
- 如何在JavaScript中将字符串值包装在变量中
- JQuery:包装变量'
- 是否有一种聪明的方法来访问包装函数中的变量
- 将变量赋值给jQuery中的包装器集并不能使代码工作
- 为什么将jQuery作为参数传递给(function($){.})(jQuery)闭包包装器,而不是本地变量?
- 将属性应用于存储在jQuery包装器中的变量中的嵌套标记
- 包装咖啡脚本范围-使用变量's值
- Javascript为什么要在IIFE中包装变量或构造函数?
- 是否有一种方法可以将变量传递给回调函数而不将其包装在另一个函数中?