function foo() {
console.log('Hello!');
foo = function () {
console.log('Bye!');
};
}
foo()// Первый вызов 'Hello!', все последующие 'Bye!'
function foo() {
console.log('Hello!');
foo = function () {
console.log('Bye!');
};
}
var obj = {
foo: foo
}
obj.foo();
var obj = {
foo() {
const message = this.isFooCalled ? 'Bye!' : 'Hello!';
console.log(message);
if (!this.isFooCalled) {
this.isFooCalled = true;
}
}
}
obj.foo();
function () {
console.log('Hello!');
foo = function () {
console.log('Bye!');
};
}
. При вызове метода foo у объекта obj выполняетя console.log("Hello"), затем сама функция foo ( Не метод объекта! ) меняется наfunction () {
console.log('Bye!');
};