Как работает метод noConflict в библиотеке (библиотека accounting.js)? - PullRequest
0 голосов
/ 06 мая 2019

Это код (в частности, 398 до 407):

https://github.com/openexchangerates/accounting.js/blob/master/accounting.js#L403

Я не понимаю этот метод:

// Use accounting.noConflict to restore `accounting` back to its original value.
// Returns a reference to the library's `accounting` object;
// e.g. `var numbers = accounting.noConflict();`
lib.noConflict = (function(oldAccounting) {
            return function() {
                // Reset the value of the root's `accounting` variable:
                root.accounting = oldAccounting;
                // Delete the noConflict method:
                lib.noConflict = undefined;
                // Return reference to the library to re-assign it:
                return lib;
            };
        })(root.accounting);

Если я сделаю var numbers = accounting.noConflict(), она помещает библиотеку в переменную чисел. Что я не понимаю, так это то, почему, если я делаю numbers.noConflict, это не определено. Я знаю, что lib.noConflict = undefined устанавливает его на undefined, но не устанавливается ли он на lib, поскольку следующий код return lib?

...