[英]Define function in the class body not in constructor
考虑以下代码。 有没有办法定义日志、警告和错误函数,如“正常” class 函数?
class ConsoleLogger {
constructor (enable, methods) {
this.log =function() {
return Function.prototype.bind.call(console.log, console, "MY PREFIX");
}();
this.warn =function() {
return Function.prototype.bind.call(console.warn, console, "MY PREFIX");
}();
this.error =function() {
return Function.prototype.bind.call(console.error, console, "MY PREFIX");
}();
}
}
// ...
logger = new ConsoleLogger();
logger.log("Log Message");
有没有办法做到这一点,但具有与上层代码相同的功能?
class ConsoleLogger {
log() {
//do something
}
}
是的。 试试下面的代码。
class ConsoleLogger {
constructor (enable, methods) {
}
log() {
return Function.prototype.bind.call(console.log, console, "MY PREFIX");
}
warn() {
return Function.prototype.bind.call(console.warn, console, "MY PREFIX");
}
error() {
return Function.prototype.bind.call(console.error, console, "MY PREFIX");
}
}
并将 function 称为
new ConsoleLogger().log()("test log")
将返回
MY PREFIX test log
您可以将log
添加到 class。 在其中使用console.log()
并将带有前缀参数的 arguments 传递给console.log
class ConsoleLogger { log(...args) { console.log("MY PREFIX", ...args) } } new ConsoleLogger().log("message 1", "message 2");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.