Javascript Underline.js如何为函数创建别名?
例如,Javascript Underline.js如何为函数创建别名?,javascript,arrays,underscore.js,Javascript,Arrays,Underscore.js,例如,。每个都有一个别名。.forEach 我可以调用[1,2,3]。forEach(alter),但当我调用[1,2,3]时,它会显示每个(警报) TypeError:[1,2,3]。每个都不是函数 我在源代码中没有找到forEach的定义,那么下划线.js是如何做到这一点的呢?就这一点而言,规则与.forEach或.each不一样。标准的[].forEach是一个本机函数,自ES5以来,它是数组API的一部分。(它位于阵列原型上) 在..forEach的情况下,它实际上不使用[].forEa
。每个
都有一个别名。.forEach
我可以调用[1,2,3]。forEach(alter)
,但当我调用[1,2,3]时,它会显示每个(警报)
TypeError:[1,2,3]。每个都不是函数
我在源代码中没有找到forEach
的定义,那么下划线.js是如何做到这一点的呢?就这一点而言,规则与.forEach
或.each
不一样。标准的[].forEach
是一个本机函数,自ES5以来,它是数组
API的一部分。(它位于阵列
原型上)
在..forEach
的情况下,它实际上不使用[].forEach
方法使其向后兼容(ES5之前),因此它只使用for
循环
对于别名,下划线通过将多个变量指向同一对象来创建别名
您可以在注释的源代码中清楚地看到这一切:
// alias _.each and _.forEach to point to the same function
_.each = _.forEach = function(obj, iteratee, context) {
// ...
if (isArrayLike(obj)) {
// use a for loop to perform the iteration
for (i = 0, length = obj.length; i < length; i++) {
iteratee(obj[i], i, obj);
}
} else {
// ...
//alias u0.each和0.forEach指向同一函数
_.each=uu.forEach=函数(对象、迭代对象、上下文){
// ...
if(类isArrayLike(obj)){
//使用for循环执行迭代
对于(i=0,长度=obj.length;i
下面是下划线的一个简单示例:
var{};//创建我们的虚拟下划线对象
_.each=\.forEach=函数(arr,callback){//别名\.each和\.forEach循环并执行回调
对于(变量i=0,l=arr.length;i });
下划线不扩展数组
原型。这些是不同的函数。