即時実行関数IIIFEについて
1385 ワード
今日は簡単に話しに来ました.前に書いておきます.IIIFEがとても多いです.まず、javascriptを見に来ます.
IIIIFはどんな用途がありますか
1.コードは常にIIIIIIIFFE(Immedia tely-Invoked Function Expression)に包まれ、独立して遮断された定義ドメインを作成する.この取り組みは全体の名前空間の汚染を防ぐことができる.グローバルの名前空間を汚染しないというのは、IIIFが新たな機能領域を作ったからです.本当の業務コードはその中に封入されています.自然にグローバルオブジェクトに触れることができなくなります.全体のオブジェクトが必要なら、パスをIIIIIIFEに渡します.
IIIIFは普通どこで使いますか?
1.いつでも、新しい閉じた定義ドメインを作成したいなら、IIIFEを使います.干渉を避けるだけでなく、内部に存在しています.実行後すぐに釈放します.
2.すべてのスクリプトファイルはIIFから開始することを推奨します.
普通はIIIFEはどう書きますか
おすすめ
ES 6は、変数を宣言するためにletコマンドを追加しました.その使い方はvarに似ていますが、宣言された変数はletコマンドがあるコードブロック内でのみ有効です.私達があるコードブロックの中でしか変数を使っていないなら、letを使ってもいいです.IIIIFEを使う必要はありません.
(function(){
})()
これはつまりIIFE( )
です.これはみんな会ったことがあるはずですが、みんなは初めてこれを見た時、このように書いて何の用途があると思いますか?普通はどこで使いますか?IIIIFはどんな用途がありますか
1.コードは常にIIIIIIIFFE(Immedia tely-Invoked Function Expression)に包まれ、独立して遮断された定義ドメインを作成する.この取り組みは全体の名前空間の汚染を防ぐことができる.グローバルの名前空間を汚染しないというのは、IIIFが新たな機能領域を作ったからです.本当の業務コードはその中に封入されています.自然にグローバルオブジェクトに触れることができなくなります.全体のオブジェクトが必要なら、パスをIIIIIIFEに渡します.
(function (global) {
// ,global
})(this) // ,this window
2.IIIIIFはまた、あなたのコードが他のグローバル名前空間のコードによって簡単に変更されないことを確認します(i.e.サードパーティライブラリ、window参照、上書きされた未定義のキーワードなど).IIIIFは普通どこで使いますか?
1.いつでも、新しい閉じた定義ドメインを作成したいなら、IIIFEを使います.干渉を避けるだけでなく、内部に存在しています.実行後すぐに釈放します.
2.すべてのスクリプトファイルはIIFから開始することを推奨します.
普通はIIIFEはどう書きますか
おすすめ
(function(){
'use strict';
// Code goes here
}());
(function($, w, d){
'use strict';
$(function() {
w.alert(d.querySelectorAll('div').length);
});
}(jQuery, window, document));
ES 6ではIIIFEの代わりにletを使用します.ES 6は、変数を宣言するためにletコマンドを追加しました.その使い方はvarに似ていますが、宣言された変数はletコマンドがあるコードブロック内でのみ有効です.私達があるコードブロックの中でしか変数を使っていないなら、letを使ってもいいです.IIIIFEを使う必要はありません.
{
let private = 1;
}
console.log(private); // ReferenceError