render = new Function(settings.variable || 'obj', '_', source);
这种问题最好直接去看规范,
Fcuntion
构造函数的那一章为什么不自己尝试一下变换输入看看
new Fcuntion()
出来的是个啥呢?
语法
new Function ([arg1[, arg2[, ...argN]],] functionBody)
settings.variable || 'obj' // 传进来设置的变量参数,如果没有默认 'obj'
'_' //应该是传入 underscore 或者 lodash 的全局变量
source // 应该是代码块
new Function ([arg1[, arg2[, ...argN]],] functionBody)
arg1, arg2, ... argN
被函数使用的参数的名称必须是合法命名的。参数名称是一个有效的JavaScript标识符的字符串,或者一个用逗号分隔的有效字符串的列表;例如“×”,“theValue”,或“A,B”。
functionBody
一个含有包括函数定义的JavaScript语句的字符串。
详见构造器
传了三个参,第一个参用了||运算符,||的意思是前后哪个有值用哪个;
三个参数,第一个如果有setting就用,没有就用缺省值obj