Javascript Don';我不理解JS装饰器中的构造
我在研究JS装饰器,不明白包装器是如何访问内部函数参数的。该代码段可以工作,但我不理解为什么匿名函数“function(val)”可以访问val,即slow()的参数Javascript Don';我不理解JS装饰器中的构造,javascript,decorator,Javascript,Decorator,我在研究JS装饰器,不明白包装器是如何访问内部函数参数的。该代码段可以工作,但我不理解为什么匿名函数“function(val)”可以访问val,即slow()的参数 输出是6,这是正确的。这是因为cacheDecorator返回一个带有参数val的函数,当您使用值2调用返回的函数时,它会像正常情况一样被访问。因此,重新分配后,slow,是: slow = function(val) { return val * 3; } 因此,调用新包装的函数时,val被用作传递参数的参数。这是因为ca
输出是6,这是正确的。这是因为
cacheDecorator
返回一个带有参数val
的函数,当您使用值2
调用返回的函数时,它会像正常情况一样被访问。因此,重新分配后,slow
,是:
slow = function(val) {
return val * 3;
}
因此,调用新包装的函数时,
val
被用作传递参数的参数。这是因为cacheDecorator
返回一个带有参数val
的函数,当您使用值2
调用返回的函数时,它会像正常情况一样被访问。因此,重新分配后,slow
,是:
slow = function(val) {
return val * 3;
}
因此,
val
被用作调用新包装函数时传递的参数。Javascript闭包在起作用。dup中的第一个示例应该为您澄清一些问题。但是本质上cacheDecorator
返回一个函数,因此slow
被设置为内部匿名函数,可以在工作时使用slow(2)
Javascript闭包调用该函数。dup中的第一个示例应该为您澄清一些问题。但是本质上cacheDecorator
返回一个函数,因此slow
被设置为内部匿名函数,可以使用slow(2)