可以使用 eval() 函数来获取一个变量的值作为另外一个变量的名称,例如:
var name = 'myVar'; var myVar = 'www.phpernote.com'; var result = eval(name); //result 的值为 www.phpernote.com
今天在写代码时遇到了这样一个需求 —— 需要在变量名上加一个变量(也就是:变量值和字符串拼接成一个新的变量名)。
这时候我们就可以用eval() 函数。
js中的eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
栗子如下:
{ xxx.map((item, index) => { return <ScrollView onLayout={event => { eval(`agencyY${index} = event.nativeEvent.layout.y`) }} key={index}> blabla~~~ </ScrollView> }) }
上面代码中的:
eval(`agencyY${index} = event.nativeEvent.layout.y`),相当于定义了
agencyY0=event.nativeEvent.layout.y,agencyY1=event.nativeEvent.layout.y,…………
更多示例:
if (getCookie('sid') != window['player' + myPosition].sid) { myAlert('围观者不可以下棋', 'msg'); return; } var soundObjSuffix = 'bgsound'; function loadAudio(obj, url, callback) { if (typeof window[obj + soundObjSuffix] != 'undefined') { if (typeof url == 'undefined' || url == '') { url = window[obj + soundObjSuffix].url; } } window[obj + soundObjSuffix] = new Music(url); } window[obj + soundObjSuffix]