Мне интересно, как я могу деструктурировать значения по умолчанию из строки.Например, возьмите следующий код:
function f({length, valueOf}) {
console.log("The length is:", length);
console.log("The string is:", valueOf()); // Expected: "The string is: foo"
}
f("foo");
Выше я пытаюсь получить length
переданной строки, а также саму строку (т. Е. Путем вызова valueOf
), однако,Я получаю сообщение об ошибке:
Uncaught TypeError: String.prototype.valueOf требует, чтобы 'this' было строкой
Я думал, что это потому, что я не могудеструктурировать методы из объектов, но мое тестирование говорит мне иначе:
const obj = {
id: 1,
foo: function() {
return "bar";
}
}
const {id, foo} = obj;
console.log(id, foo());
Итак, я хотел бы знать две вещи:
Как мне передать исходную строку в мою функцию f
Разрушая свои аргументы (возможно ли это?)
Почему я получаю сообщение об ошибке с моим первым битом кода, но не с другим?