да
const bot = new Telegraf(process.env.BOT_TOKEN) bot.context.db = { getScores: () => { return 42 } } bot.on('text', (ctx) => { const scores = ctx.db.getScores(ctx.message.from.username) return ctx.reply(`${ctx.message.from.username}: ${scores}`) }) bot.launch()
поняль, спасибо!
bot.on('text', (ctx) => { const scores = ctx.db.getScores(ctx.message.from.username); ctx.db.getScores = () => 11; // поменяется ctx.db = { getScores: () => 11 }; // не поменяется bot.context.db = { getScores: () => 11 }; // поменяется bot.context.db.getScores = () => 11; // поменяется return ctx.reply(`${ctx.message.from.username}: ${scores}`); });
и это не очень-то очевидно
Да не очевидно , почему в первом случае поменяется (глобально, если я правильно понял)?
да там все относительно глобального
потому что ссылка на bot.context.db осталась прежней хотя... 🤔
поэтому для этого есть тс
тс здесь никак не поможет
Обсуждают сегодня