今天做一个对UUID传参的时候才发现的,虽然解决方法有,但是不清楚原因是啥,能给个指点吗?javascript标准是否有明确的限制?(找了一下没有找到)
var id = $("#jqGrid").getCell(colId, "id").toString();
console.log(typeof id);
var opr = $("#jqGrid").getCell(colId, array[i]);
/*$("#jqGrid").setCell(colId, array[i], '<a href="javascript:vm.'+array[i]+'('+id+')">'+opr+'');*/
$("#jqGrid").setCell(colId, array[i], '<a href="javascript:vm.'+array[i]+'(\''+id+'\')">'+opr+'');
id明明是个字符串,但是必须加引号才可以被认为是字符串传参。
是因为js的语法很松散吗?
标题 和 内容 感觉问的不是一个事情。。。
标题的问题:
js 的变量命名是有规则的:
id 里出现了不允许的字符
-
内容的问题:
变成字符串后,你说解决了问题
那么你这个 id 我猜应该是一个 键名,类似 map[id] 的用法
这个用法的问题 和 变量命名规则 实际上是没有关系的两个问题
修改后的问题:
这段生成的HTML
<a href="javascript:vm.xxx(aaaa-bbbb-cccc-dddd)">
这段生成的HTML
<a href="javascript:vm.xxx('aaaa-bbbb-cccc-dddd')">
上面是执行
vm.xxx(aaaa-bbbb-cccc-dddd)
这里
aaaa-bbbb-cccc-dddd
从语法来讲就不是一个字符串,是个表达式,4个变量连续减法),然后aaaa
,bbbb
,cccc
,dddd
都未定义下面是执行
vm.xxx('aaaa-bbbb-cccc-dddd')
这里
'aaaa-bbbb-cccc-dddd'
才是个字符串