Этот код претендует на переопределение функции: helper.highlight
, которая уже добавляла ###
к строке, переданной в качестве аргумента.После переопределения предполагается, что он также добавляет ###
к строке.
Здесь есть одна важная деталь: новая реализация (переопределение) функции должна использовать исходную реализацию.
<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script>
window.addEventListener('load', function(){
let output = document.querySelector('.message');
let result = helper.highlight('Hello World');
output.innerHTML = result;
});
helper = {
highlight: str => {
return '### ' + str;
}
};
// BEGIN OF YOUR APPROACH
prevHighlight = helper.highlight;
helper.highlight = str => {
str += ' ###';
str = prevHighlight(str);
return str;
};
// END OF YOUR APPROACH
</script>
</head>
<body>
<span class="message"></span>
</body>
</html>
Код работает правильно, как вы можете видеть здесь:
https://codesandbox.io/s/2o503978m0
Что я хочу знать, это: еслиПереопределение функции может быть сделано без использования дополнительной переменной, как я делаю с: prevHighlight
.Ищите более понятный способ сделать это.
Есть идеи по этому поводу?
Если возможно, пожалуйста, раскошелите мой codesandbox.io
выше и вставьте новую ссылку в ваш ответ.
Спасибо!