嗯,您之前可能听说过 javascript 中的对象以及它们对于理解该语言的重要性。
对象因其“key”:“value”模型而使 js 变得非常可读和有用。但我想强调的是,“值”部分不仅接受一个简单的字符串,还接受另一个对象,而该对象又可能是另一个对象,依此类推。例如:
const character = { name:"arthur morgan", age:24, face: { hairsize:5, eyescolor: "blue", } }
这个片段表明,脸既是一个对象,也是一个角色。这样做完全没问题,而且许多复杂的 api 都会处理这样的数据,并在重要时一遍又一遍地进行分组。
但是对象的真正力量依赖于函数,这个 leet code 问题就解决了这个问题,并为我们提供了测试库在幕后如何工作的要点。基本上,您需要一个函数来验证值是否等于预期值:tobe() 和 nottobe()。为此,我们可以返回一个具有这些函数的对象。顺便说一句,使用箭头函数让它更漂亮、更直接。
这就是答案。
function expect(val) { function tobe(anothervalue) { if (val === anothervalue) { return true; } throw error("not equal"); } function nottobe(anothervalue) { if (val !== anothervalue) { return true; } throw error("equal"); } return { tobe: (anothervalue) => tobe(anothervalue), nottobe: (anothervalue) => nottobe(anothervalue), }; }
我们可以使用另一个对象快速看到它的运行:著名的控制台及其功能日志。
console.log(expect(5).toBe(null)); // give us an error "Not Equal", because 5 is not null
请注意,返回对象的事实使我们可以自由地使用 expect(),然后紧接着使用.tobe()。这是因为我们返回一个对象并立即访问属性 tobe,这是一个函数。
这个 leet 代码问题是了解对象和函数如何协同工作并在 javascript 中构建出色内容的绝佳方法。我希望你喜欢:)
立即学习“Java免费学习笔记(深入)”;