Показать сообщение отдельно
  #6 (permalink)  
Старый 31.10.2018, 09:30
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,209

Сообщение от AlexanderFilatov
А мне думается, что функция одна
Тогда должно выполняться равенство

function makePhrase(phrase) {
    return function(name) {
        return phrase + ', ' + name;
    }
}
var phraseHi = makePhrase;
var phraseBye = makePhrase;
alert(phraseHi===phraseBye);
phraseHi = makePhrase('Привет');
phraseBye = makePhrase('Пока');
alert(phraseHi===phraseBye);

А оно не выполняется в твоем случае...
Сообщение от AlexanderFilatov
Можете привести наглядный пример!?
Так это же очевидно!
В твоем примере возвращается функция. Даже если текст у нее будет одинаковый - это таки разные объекты (читай функции). Про что тебе писали выше.
function test() {
    return function() {
        alert('Ok');
    }
}
var fnc0 = test();
var fnc1 = test();
alert(fnc0===fnc1);


Т.ч. ты просто думаешь не верно.
Ответить с цитированием