Ну, тут не о чем беспокоиться, кроме обычной проблемы js this
.Вы можете ввести значения в этот метод, используя метод call, bind и т. Д.Это также может привести к ошибкам и несоответствиям.
class Foo {
constructor(bar) {
this.bar = bar;
}
echo(value=this.bar) {
return value;
}
}
f = new Foo(10);
console.log('f', f.echo().toFixed(0))
console.log('f', f.echo.call({bar: 50}).toFixed(0))
try{
console.log('f', f.echo.call(window).toFixed(0))
}catch(e){
console.error(e);
}
class Fooo {
constructor(bar) {
this.bar = bar;
// fixing the scope
this.echo = (value=this.bar) => {
return value;
}
}
}
f2 = new Fooo(10);
console.log('f2', f2.echo().toFixed(0))
console.log('f2', f2.echo.call({bar: 50}).toFixed(0))
try{
console.log('f2', f2.echo.call(window).toFixed(0))
}catch(e){
console.error(e);
}