JavaScript中的函数可以作为参数传递给其他函数,也可以被另一个函数所包装。以下是一个示例,演示如何使用闭包来包装另一个函数,并为其提供一个属性:
function functionWrapper(fn) {
return function() {
fn.apply(this, arguments);
}
}
function myFunction() {
console.log('My function has been called.');
}
myFunction = functionWrapper(myFunction);
myFunction.customProperty = 'This is a custom property.';
console.log(myFunction.customProperty);
myFunction();
输出结果为:
This is a custom property.
My function has been called.
在上面的示例中,functionWrapper函数接受一个函数作为参数,并返回一个新函数。新函数接受参数并通过apply方法调用原始函数。通过将myFunction变量重新赋值为返回的新函数,我们成功地包装了myFunction函数。
此外,我们还向包装函数添加了一个属性customProperty。通过向函数添加属性,我们可以轻松地向对象添加自定义数据属性。