// Класс, от которого будет наследоваться другой
class Parent {
// Состояние активности
state = true
// Изменить состояние активности
turnState() {
this.state = !this.state;
}
}
// Наследующий класс, функции которого должны быть недоступны, если state == false
class Child extends Parent {
someFunc() {
if (!this.state) return null;
return 'Some string';
}
}
const obj1 = new Child();
const obj2 = new Child();
console.log( obj1.someFunc() ); // Some string
console.log( obj2.someFunc() ); // Some string
obj1.turnState();
console.log( obj1.someFunc() ); // null
console.log( obj2.someFunc() ); // Some string
obj2.turnState();
console.log( obj1.someFunc() ); // null
console.log( obj2.someFunc() ); // null
Каким образом в Second можно проследить вызов First?
progValue(1, 3) === 2
потому, что вы совсем не понимаете как это работает.
import React, { useState } from 'react';
import './styles.css';
// обратите внимание на отсутствие ...args
function debounce(fn, ms) {
let timer;
// обратите внимание на ...args
return (...args) => {
clearTimeout(timer);
timer = setTimeout(() => {
timer = null;
fn.apply(this, args);
}, ms);
};
}
export default function App() {
const [value, setValue] = useState('');
const handleChange = e => {
const { value } = e.target;
delayHandler(value);
};
const delayHandler = debounce(value => {
alert("пользователь уже некоторое время ничего не набивает, так что отправляю на серв следующее:"+value)
setValue(value);
}, 2000);
return (
<div className="App">
<p>Current value: {value}</p>
<form>
<input onChange={handleChange} />
</form>
</div>
);
}