gpt4 book ai didi

javascript - 在JS中创建动态变量名

转载 作者:行者123 更新时间:2023-11-28 14:31:36 24 4
gpt4 key购买 nike

var $geometryPointFields = $('[class*="Point"]', $panel),
$geometryLineFields = $('[class*="Line"]', $panel),
$geometryPolygonFields = $('[class*="Polygon"]', $panel);

function(geometry) {
// geomtery is either Point, Line or Polygon
${'geometry'+geometry+'Fields'}.show() // ?
}

我该怎么做?我不能或者不想使用 window[]scope[]

最佳答案

因为这三个变量都是几何字段,所以使用一个对象而不是三个独立变量可能是最有意义的:

const geometryFields = {
Point: $('[class*="Point"]', $panel),
Line: $('[class*="Line"]', $panel),
Polygon: $('[class*="Polygon"]', $panel)
};

然后您可以使用geometry字符串访问对象的属性:

function showGeom(classStr) {
geometryFields[classStr].show();
}

如果您必须使用独立变量,则可以eval,但实际上不应该eval:

$geometryPointFields = $('.point');
function showGeom(classStr) {
eval('$geometry' + classStr + 'Fields').show();
}
setTimeout(() => showGeom('Point'), 1500);
.point { display: none }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="point">point</div>

关于javascript - 在JS中创建动态变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51277022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com