
问题
我们应该在 JavaScript 中创建一个用户定义的数据类型 Streak,它可以与值和操作链接到任意范围强>或者
该值可以是以下字符串之一 –
→ one, two three, four, five, six, seven, eight, nine
操作可以是以下字符串之一 –
→ plus, minus
例如,如果我们在类的上下文中实现以下内容 –
立即学习“Java免费学习笔记(深入)”;
AIBox 一站式AI创作平台
AIBox365一站式AI创作平台,支持ChatGPT、GPT4、Claue3、Gemini、Midjourney等国内外大模型
31 查看详情
Streak.one.plus.five.minus.three;
那么输出应该是 –
const output = 3;
输出解释
因为发生的操作是 –
1 + 5 - 3 = 3
示例
以下是代码 –
实时演示
const Streak = function() { let value = 0; const operators = { 'plus': (a, b) => a + b, 'minus': (a, b) => a - b }; const numbers = [ 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine' ]; Object.keys(operators).forEach((operator) => { const operatorFunction = operators[operator]; const operatorObject = {}; numbers.forEach((num, index) => { Object.defineProperty(operatorObject, num, { get: () => value = operatorFunction(value, index) }); }); Number.prototype[operator] = operatorObject; }); numbers.forEach((num, index) => { Object.defineProperty(this, num, { get: () => { value = index; return Number(index); } }); });};const streak = new Streak();console.log(streak.one.plus.five.minus.three);
输出
以下是控制台输出 –
3
以上就是在 JavaScript 中创建链式操作类的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/528040.html
微信扫一扫
支付宝扫一扫