私はこのような何かをする考えを持っていた:自己実行機能でjQueryドキュメントを準備する必要がありますか?
(function(window, undefined){
$ = window.jQuery;
$(function(){
// Do some stuff
});
})(this);
あなたがこの良い練習や悪い考えるだろうか? jQuery(document).ready()が起動するときに何らかの影響がありますか?
私はこのような何かをする考えを持っていた:自己実行機能でjQueryドキュメントを準備する必要がありますか?
(function(window, undefined){
$ = window.jQuery;
$(function(){
// Do some stuff
});
})(this);
あなたがこの良い練習や悪い考えるだろうか? jQuery(document).ready()が起動するときに何らかの影響がありますか?
の前に DOMの準備ができていて、グローバル名前空間を汚染したくない場合は、javascriptを実行する必要があります。
(function(window, undefined){
var $ = window.jQuery;
// create some variables and/or functions that shouldn't be global
// ...and do some work before the "ready()" fires
var a = 'some value';
function b() {
// do some important stuff
}
var c = b();
// Maybe set up a `.live()` handler, which doesn't rely on DOM ready.
$('.someSelector').live(function() {
// Some handler code.
// This works before DOM is ready.
});
$(function(){
// Your DOM ready code
});
})(this);
これは不要です。自己実行可能関数を使用するとスコープが作成され、そのスコープに作成する変数がグローバルにならないようにします。
var a = 'Hi';
alert(window.a); // "Hi"
(function() {
var a = 'Hi';
})();
alert(window.a); // "undefined"
jQueryの場合は必要ありません。準備関数は既にスコープを作成します。
実際には意味がありません。ライブラリはすでに、 "準備完了"関数の最初の引数として、グローバルjQueryオブジェクトへの参照を渡します。 – Pointy
あなたの例で '$'はグローバルであることは知っていますか?あなたはただの関数を省略することができ、あなたは同じ効果を持ちます。 –
はい、私は$がグローバルであることを知っています。私は実際には準備関数をラップして意見を探していました。しかし、それを指摘してくれてありがとう。 – Cros