それを理解することから始めるのは理にかなっていると思い$ = jQuery
ます。無名関数内の名前空間について読むときの以下の目的は、より理にかなっています。しかし、本質的には、どちらでも使用できます。複数のライブラリを使用していて、他のライブラリで使用したい場合は、代わりjQuery()
に使用します。$()
$
$(document).ready(function(){
// Here we have jQuery(document) firing off the ready event
// which executes once the DOM has been created in
// order to ensure that elements you are trying to manipulate exist.
});
$(function () {
// Short-hand version of $(document).ready(function () { });
});
Document.ready() の詳細
を括弧$
内に入れると、jQuery の $ エイリアスが保証されます (常にこの方法で jQuery を意味するので安全です)。
$(function ($) { /* code here : $ always means jQuery now */ });
最後に、IIFE (Immidially-Invoked Function Expression)があります
- IIFE の説明
(function (myNameSpace, $) {
// This is an anonymous function - it is ran instantly
// Usually used for namespaces / etc
// This creates a scope/wrapper/closure around everything inside of it
}(window.myNameSpace, jQuery));
上部の $ (下部の jQuery と一致) は、$ (ドル記号) がネームスペースの範囲内の jQuery を表すことを示します。これは、他のライブラリが、開発者が $ の使用を意図/希望するものと衝突しないようにするために行われます。
(function (myNameSpace, $) {
// Now because of all of this scope/wrapper/closure awesome...
// you can create -INTERNAL- variables (sort of like Private variables from other langs)
// this variable cannot be accessed outside the namespace unless it is returned / exposed
var internalVariable = '123'; // Internal
// Even Internal functions!
function privateFunction () {
console.log('this is private!');
}
// --------------------------------------------------------
// Public -method- of nameSpace exposing a private variable
// Notice we're using the myNameSpace object we exposed at the top/bottom
myNameSpace.nameSpaceMethod = function () {
privateFunction(); // we can call the private function only inside of the namespace
return internalVariable; // now we could get this variable
};
}(window.myNameSpace, jQuery)); // notice these mirror the above arguments in the anon function
無名関数の詳細
名前空間の外にいる場合、これらの内部/パブリック メソッドと変数がどのように影響を受けるかを確認できます。
// This will come up undefined
alert(internalVariable);
// This will trigger a -method- of the myNameSpace namespace - and alert "123"
// Showcasing how we access a Public method - which itself has access to the internal variable
// and exposes it to us!
alert(myNameSpace.nameSpaceMethod());