gpt4 book ai didi

javascript - 如何将参数传递给 JS 函数而不将其包装在匿名函数中?

转载 作者:行者123 更新时间:2023-12-02 15:19:16 26 4
gpt4 key购买 nike

很长一段时间我都有这样的问题:如何将参数传递给 JS 函数而不将其包装在匿名函数中?

让我们看一个例子:

var
x = 10,
foo = function( num ) {
console.log("Number: " + num);
};

// This way works, but I wouldn't like to wrap it in an anonymous function
setTimeout(function() {
foo( x );
}, 1000 );

// Is there a way to pass the 'x' parameter here?
setTimeout( foo, 2000 );

有没有办法在第二个 setTimeout 调用上传递参数?

最佳答案

在现代 Javascript 引擎中(MDN 也有 shim that makes this work in IE9 and older ):

setTimeout( foo, 2000, x );

或使用bind ,它不太现代,但仍然足够现代,在 IE8 中不支持(同样有一个 shim on MDN ):

setTimeout( foo.bind( null, x ), 2000 );

如果您通常会使用上下文调用该函数,请将 null 替换为您希望在函数中出现的 this 内容。在上面的示例中,null 效果很好。

关于javascript - 如何将参数传递给 JS 函数而不将其包装在匿名函数中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34210591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com