Из DailyJS «Давайте создадим JavaScript Framework» Я не совсем уверен в следующем коде, который, очевидно, используется в качестве глобального метода борьбы с выбросами.
Я пока не понимаю (function () {}). Я понимаю, что настраиваю переменную Тьюринга, устанавливаю global.turing на turing и возвращаю либо окно, либо это (если не в браузере), но (function (global) {}) (this или window) меня смущает ... Я видел такие вещи, как
var mything = {}
и настройку всего вашего кода под mything, но эта идиома меня немного смущает.
Я действительно хочу понять рассуждения здесь, а не запоминать это " работает "
(function(global) {
var turing = {
VERSION: '0.0.1',
lesson: 'Part 1: Library Architecture'
};
if (global.turing) {
throw new Error('turing has already been defined');
} else {
global.turing = turing;
}
})(typeof window === 'undefined' ? this : window);