在javascript中缓存结束符
|
阅读以下问题的答案后:JavaScript内部函数和性能
我想知道在这种情况下是否可以缓存内部函数(doSomethingCool):
function newUser(user){
function doSomethingCool(){
console.log(user);
}
}
没有找到相关结果
已邀请:
2 个回复
驮帽俺篮号
我们第一次调用
时,将创建
函数。这是输出:
当我们第二次调用该函数时,闭包将被重用。这是输出:
为什么?因为闭包仅关闭函数调用的变量,所以定义在其中。 如果您确实想“缓存”该函数,则必须对其进行参数化:
但我不会称其为关闭。从技术上讲,它是一个闭包,但是您不使用此属性。 实际上,这样写起来要容易得多:
亥套惟间连
使用该代码,仅在User原型上创建了一个
函数,但是其行为根据其调用方式而改变。 如果您只是想制作一个仅在ѭ2内使用但不利用闭包属性的实用程序函数,则最好移动该函数并接受用户作为参数。就是说,我非常怀疑将其留在那会以任何明显的方式影响您的表现。