calcAmount
по SOLID должен быть методом у объекта с этими ключами.const data = [{"id": 1, "a": 99, "b": 100}, {"id": 2, "a": 1 "b": 2}];
interface Calculable {
calcAmount(): number;
}
class CalculableAB implements Calculable {
constructor(obj) {
Object.assign(this, obj);
}
calcAmount() {
const {a, b} = this;
return a + b;
}
}
struct = data.map(obj => new CalculableAB(obj));
Calculable
ты просто вызываешь у него calcAmount()
. Как оно там реализовано - тебя не волнует.function isHappy(array){
// записываем пустой массив в array
// (не важно что там мы получили, теперь этого нет)
array = []
// получаем 6 переменных с значением "ничего"(undefined)
let[x,y,z,b,n,v] = array
// сравниваем x+y+z == b+n и выкидываем, никак не используя
// с помощью оператора запятая(,) в if попадает только v
// как мы знаем во всех переменных undefined - if(undefined) - ложь
if(x+y+z == b+n,v){
console.log(`Число ${array} - счастливое!`);
}
else{
console.log(`Число ${array} - несчастливое`);
}
}
// вызываем isHappy с аргументом 000000, который является числом 0,
// просто записанным длинно, а не массивом
isHappy(000000)
value['key'](...args)
Не удалось загрузить сценарий модуля: ожидался сценарий модуля JavaScript, но сервер ответил типом MIME «text / html». Для скриптов модуля в соответствии со спецификацией HTML применяется строгая проверка типов MIME.
onload
- можешь. Только не onload
addEventListener('load', ...)
.content_scripts
указывается когда его запускать в параметре run_at
. onclick
, а addEventListener('click', ...)
. Вообще забудь об on<event>
когда лезешь на чужие страницы. Такой обработчик может быть только один, в то время как addEventListener
сколько угодно.split
, на который жалуется ошибка, так что где-то ты привираешь. function interceptBefore(func, callback) {
return function (...args) {
const newArgs = callback(args);
return func.apply(this, Array.isArray(newArgs) ? newArgs : args);
}
}
console.log = interceptBefore(
console.log,
(args) => console.warn('console.log call: %o', args)
);
console.log(1, 2);