gpt4 book ai didi

javascript - JS如何使用父函数的参数调用函数内部的函数?

转载 作者:行者123 更新时间:2023-12-01 03:29:13 26 4
gpt4 key购买 nike

我需要典型案例的帮助,但我不知道如何在没有诸如 for .. in .. 或 forEach 之类的脏东西的情况下做到这一点。所以,我有一个带有一些方法和 bool 字段的对象,它显示是否需要打印日志。类似这样的事情:

var sender = {
showLogs: true,
doSomething: function(){
"do something";
if (this.showLogs)
console.log("Sender do something")
}
}

显然,会有很多相同的代码,在每个方法上重复:

if(this.showLogs)
console.log("Sender do x");

最佳实践是将此代码移至新方法中:

..
log: function(message){
if (this.showLogs)
console.log(message)
}
..

并调用此方法而不是重复 if... 段落:

  ..
doSomething: function(){
"do something";
this.log("Sender do something");
}
..

但是如果我需要在一个日志中记录未知数量的参数怎么办,例如:

this.log("Start at: ", start time,", Value send: ", data);

所以,问题是:如何使用相同的参数在函数内调用 console.log,无论发送了多少参数?

最佳答案

使用Function#apply以及arguments对象使用传递给父函数的参数来调用函数。

log: function(message){
if (this.showLogs)
console.log.apply(null,arguments);
}

您还可以使用spread operator带参数,这样您就不必调用 .apply

log: function(message){
if (this.showLogs)
console.log(...arguments);
}

关于javascript - JS如何使用父函数的参数调用函数内部的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44633445/

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