javascript中匿名函数前加下划线的问题

阅读别人的javascript代码时,发现匿名函数前面加下划线,如下面代码中 _(function(info){...}).bind(this)

类似下面这样:

indexAPI.getVersion(_(function(info) {
    this.sc_version = info.version;
    this.release_date = info.date.substr(0,4) + "-" +info.date.substr(4,2) + "-" + info.date.substr(6,2);
    // 创建组件
    this.createComps();
    // 添加对话框渲染
    this.render();
    
}).bind(this));

不理解有什么用处,是jquery的规定吗?

我对javascript和jquery都不是很熟,求解。

阅读 7.6k
6 个回答

_是其定义的一个函数的简写名字,如同jquery中使用$表示jquery函数对象一样
例如:

function myGlobalFun(fun){
    fun();
}
var _= myGlobalFun;

按照语法规则,你的页面里面有一个叫_的变量,是一个函数 ,_()是调用这个函数

这个不是 js 的规定,也不是 jq 的规定,你确定那个环境中_不是一个函数么?

下划线 _ 是一个合法的标识符,所以这里可能是函数 _(),其参数要求是一个函数。

下划线是一个合法标识符,跟fooname没有本质区别。

你代码中的下划线应该是个函数,你要找到它的定义才能知道具体含义。

个可能是用的lodash或者underscore库里面的函数,把当前的上下文绑定到函数中,也就是在特定的作用域中调用函数,类似于call和apply的语法糖
http://lodashjs.com/docs/#_bindfunc-this...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题