すぐに呼び出される3 つのパラメーター ( root
、ns
、 ) を取る無名関数があります。factory
root
`window の値を取ります。
ns
の値を取る'detectZoom'
factory
コールバック関数の値を取ります (匿名でもあります)
説明:
(function (root, ns, factory) {
// the body of the anonymous function
} (window, 'detectZoom', function() {
// the body of the 'factory' callback
}));
分解するには、このコードを 4 つのステップで取得する方法を次に示します。
1.
// Anonymous function.
(function (root, ns, factory) {/* body */});
2.
// Anonynmous function, immediately invoked
(function (root, ns, factory) {/* body */})(); // parentheses mean it's invoked
3.
// Callback as a separate argument
var cbk = function () {};
(function (root, ns, factory) {/* body */})(window, 'detectZoom', cbk);
4.
// Callback as an anonymous function
(function (root, ns, factory) {/* body */})(window, 'detectZoom', function () {});
コードをより冗長になるように書き直すことができます。
var outer = function (root, ns, factory) {
// the body
};
var callback = function () {
// the body
};
outer(window, 'detectZoom', callback);