javascript – 功能自我参考

前端之家收集整理的这篇文章主要介绍了javascript – 功能自我参考前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
JavaScript中,函数只是可以调用的对象.那么函数体引用实际函数对象的最简单方法是什么?

这可以用于引用调用函数(或更具体地,方法)的包含对象.但我相信这从未涉及实际的功能对象本身.

显然,bind,call或apply可用于更改函数的this值.或者bind可以用于创建函数的一个版本,该函数总是被赋予对自身的引用作为其第一个参数.

但是有更简单的方法吗?我怀疑不是,但我可能是错的.

解决方法

我想不出一个命名的函数表达式不能替代匿名函数表达式的情况.所以我建议命名函数,如果你要从内部调用它(即,如果你打算使用递归):
function myFunc(someArg) {
    ...
    ...
    myFunc(someNewArg);
}

即使它是一个参考,这也有效:

var myFunc = function(someArg) {
    ...
}

如果您不想污染命名空间,甚至可以使用递归IIFE(立即调用函数表达式):

(function myFunc(arg) {
    ...
    myFunc(someOtherArg);
})(0); //some initial value

此外,做这样的事情:

someOtherFunction(function myFunc(arg) {
    ...
    myFunc(otherArg);
});

也可以工作,不会污染命名空间.

猜你在找的JavaScript相关文章