[GPT] js 外部参数怎么传给 setTimeout 的匿名函数 ?

发布时间 2023-06-11 20:40:53作者: ercom

 

你可以将外部参数作为 setTimeout() 函数的第三个参数传递,然后在匿名函数中使用这个参数。例如:

var myParam = "Hello, world!";

setTimeout(function(param) {
  console.log(param); // 输出:"Hello, world!"
}, 1000, myParam);

 

在这个例子中,我们将外部参数 myParam 作为 setTimeout() 的第三个参数传递。然后,在匿名函数中,我们使用 param 参数来访问这个值。

注意,使用第三个参数来传递参数只在 ES6 之后的版本中才被支持。如果你需要兼容旧版浏览器,你可以使用闭包或者 .bind() 方法来实现相同的效果。例如:\

var myParam = "Hello, world!";

setTimeout(function() {
  console.log(myParam); // 输出:"Hello, world!"
}.bind(null, myParam), 1000);

在这个例子中,我们使用 .bind() 方法将 myParam 绑定到匿名函数中。.bind() 方法的第一个参数是要绑定的上下文,这里我们将其设置为 null,因为我们不需要改变上下文。接下来的参数是要传递给函数的参数。

然后,我们将结果传递给 setTimeout() 函数。

 

Link:https://www.cnblogs.com/farwish/p/17473548.html