Этот бит кода от этого ответа .
Я пытаюсь понять, как это работает, но я не понимаю всего этого.
Я думаю, что происходит, что TEST_ERROR является закрытием, поэтому ErrorValue нельзя изменить. Можно сослаться на значение, подобное этому: TEST_ERROR.SUCCESS. Пожалуйста, исправьте меня, если любое из этих утверждений неверно.
Что я не понимаю, так это то, что делает оператор return. Он возвращает объект, состоящий из разных ErrorValues, но возвращает его во что? И с чего оно возвращается? А когда это называется?
var TEST_ERROR = (function() {
function ErrorValue(value, friendly) {
this.value = value;
this.friendly = friendly;
}
ErrorValue.prototype = {
toString: function() { return this.friendly; },
valueOf: function() { return this.value; }
};
return {
'SUCCESS': new ErrorValue(0, 'Success'),
'FAIL': new ErrorValue(1, 'Fail'),
'ID_ERROR': new ErrorValue(2, 'ID error')
};
})();
Спасибо!
Пол