Ну, вы, наверное, уже слышали об объектах в JavaScript и о том, насколько они важны для понимания языка.
Объекты делают 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