Javascript函数名vs函数字面量用法
javascript function name vs function literal usage
测试部分求值函数时:
function partialEval(fn)
{
var sliceMethod = Array.prototype.slice;
if(arguments.length > 1)
{
var aps = sliceMethod.call(arguments, 1);
}
return function () {
return fn.apply(this,aps.concat( sliceMethod.call(arguments) ));
};
}
var x= function add(a,b,c,d){
console.debug(a + " - " + b + " - " + c + " - " + d);
return a+b+c+d;
}
var pa = partialEval(add, 1,2); // Query here
var zz = pa(3,4);
console.debug(zz);
调用partialEval(add,1,2)和partialEval(x,1,2)有什么区别?我理解x在这里是一个函数字面量,使用x会得到正确的结果。但是当我使用add作为发送给partialEval方法的函数名时,输出将作为3。有人能解释一下两者在执行上的不同吗?
谢谢。
当你这样做的时候:
var x = function add(a,b,c,d){
// code...
}
add
应该只存在于函数内部(并引用自身)。在功能之外,您需要使用x
, add
将是undefined
。
我认为命名函数会被提升,而函数字面量不会。
没有理由同时使用两种类型。我通常使用匿名函数literal,因为在我的脑海中,它将它们映射为对象。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 如何在JavaScript中将字符串转换为函数引用
- 用嵌套函数和默认函数定义函数
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 无法导出函数expressjs/requestjs中的变量
- Javascript函数的多种用法
- 在 Promise 调用的错误函数回调后附加对象的用法是什么
- 如何通过函数调用查找 JavaScript 变量的传递用法
- 了解 JavaScript 函数的用法
- 在调用函数时不熟悉方括号的用法
- Node js调用socket.io函数的用法
- Javascript回调函数的用法
- javascript匿名函数评估习惯用法
- javascript闭包函数的用法
- Jquery插件函数参数用法
- Javascript函数名vs函数字面量用法
- 自定义RequireJS require()函数的用法
- 有人能解释一下howtonode的函数包装习惯用法吗?
- jQuery绑定函数和(this)用法