Это код (в частности, 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
?