嗯,您之前可能听说过 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 中构建出色内容的绝佳方法。我希望你喜欢:)
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3