javascript - function(x)中的x是代表什么?
巴扎黑
巴扎黑 2017-04-11 12:57:06
[JavaScript讨论组]
for (var i=0; i < document.getElementsByClassName('gg_blank').length; i++) {
    var tabletd_gg=document.getElementsByClassName('gg_blank')[i].innerHTML;    
    var count = 0;
    var res_gg = tabletd_gg.replace(/~/g, function(x){ var symbol = count++ == 1 ? '~
' : x; return symbol;}); document.getElementsByClassName('gg_blank')[i].innerHTML=res_gg; }

function(x){ var symbol = count++ == 1 ? '~
' : x; return symbol;}
这句话咋理解啊,主要不知道x代表的是啥,我好蠢

巴扎黑
巴扎黑

全部回复(6)
伊谢尔伦

咦 这不是我昨天写的么

楼上 @leeyong 已经贴了 MDN 的图了
语法是:str.replace(regexp|substr, newSubStr|function)

其中第二个参数如果传方法的话,会有三个参数:
参数1:匹配到的字符串 (string) 正则写的是 /~/g 所以第一个参数 (x)~
参数2:匹配到的字符串的索引位置 (int)
参数3:要替换的原字符串 就是 str

回调函数的参数可以随意命名 临时的无意义的我习惯命名 x 你也可以换一个有意义点的名称
顺便提一句 一般这种我都会用 ES6Arrow Function (lambda 表达式) 来写:

str.replace(/~/g, x => count++ == 1 ? '~<br/>' : x);
// 等价于
str.replace(/~/g, function(x) { return count++ == 1 ? '~<br/>' : x });

只不过现在支持这种写法的浏览器比较少 需要用 Babel 转码才能完全使用

ringa_lee

ringa_lee

这里的x 是个形参 ,在函数执行的时候 他可以接受对应的实参的值.

PHP中文网

x是实参,就是你调用函数时赋的值,但是你这个是匿名函数,赋值参数就有点问题,建议把代码贴完整点

PHPz

replace(A,B) 中B是回调函数可以为空,函数的第一个参数,是匹配成功的字符。可以使用console.log,将这些值在控制台中输出,具体再来看每个函数意义。

巴扎黑

楼上已经说得很清楚了,在你这段代码中,x实际上就是“tabletd_gg”这个字符串中的“~”。

看你的上面代码应该是将tabletd_gg中的第一个“~”替换成了“~<br/>”。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号