JSにおけるブロックレベルの役割ドメイン
2989 ワード
JSではブロックレベル役割ドメインという概念はなく,ブロックレベル役割ドメインを実現するために閉パケットで実現できるが,以下では一例としてJSにおけるブロックレベル役割ドメインを述べる.
JAVA,c++などの言語では変数iはforループ文のみで定義されており,ループが終了すると変数iは破棄されるが,JSではoutputName関数全体のアクティブオブジェクトに変数iが存在し,変数iは関数内部で随所にアクセスできる.上記の例の2番目の入力文のように変数iの値が出力されます.JSにおけるパロディーブロックレベルの役割ドメイン(すなわちプライベート役割ドメイン)の構文は次のコードで示される.
一部の変数を一時的に保存する必要があります.プライベート役割ドメインを使用して、前例のコードを変更し、forループにプライベート役割ドメインを追加します.匿名関数の変数は、実行終了後に破棄されます.従って、2番目の印刷出力iではエラーが発生する.プライベート役割ドメインがcountにアクセスできるのは、この匿名関数が閉パッケージであり、役割ドメインを含む任意の変数にアクセスできるからです.
この技術は、グローバル役割ドメインで関数の外部でよく使用され、グローバル役割ドメインに変数と関数を追加しすぎることを制限する.多くの開発者によって作成された大規模なアプリケーションでは、プライベートな役割ドメインの使用によって、グローバル変数と関数の過剰な使用によるネーミング競合を解決できます.プライベート役割ドメインを作成することで、各開発者は、グローバル役割ドメインを混乱させる心配なく、独自の変数を使用できます.
function outputName(count){
for (var i = 0; i i++) {
console.log(i);
}
}
console.log(i)
}
JAVA,c++などの言語では変数iはforループ文のみで定義されており,ループが終了すると変数iは破棄されるが,JSではoutputName関数全体のアクティブオブジェクトに変数iが存在し,変数iは関数内部で随所にアクセスできる.上記の例の2番目の入力文のように変数iの値が出力されます.JSにおけるパロディーブロックレベルの役割ドメイン(すなわちプライベート役割ドメイン)の構文は次のコードで示される.
(function(){
//
})();
一部の変数を一時的に保存する必要があります.プライベート役割ドメインを使用して、前例のコードを変更し、forループにプライベート役割ドメインを追加します.匿名関数の変数は、実行終了後に破棄されます.従って、2番目の印刷出力iではエラーが発生する.プライベート役割ドメインがcountにアクセスできるのは、この匿名関数が閉パッケージであり、役割ドメインを含む任意の変数にアクセスできるからです.
function outputName(count){
(function(){
for (var i = 0; i // i
}
この技術は、グローバル役割ドメインで関数の外部でよく使用され、グローバル役割ドメインに変数と関数を追加しすぎることを制限する.多くの開発者によって作成された大規模なアプリケーションでは、プライベートな役割ドメインの使用によって、グローバル変数と関数の過剰な使用によるネーミング競合を解決できます.プライベート役割ドメインを作成することで、各開発者は、グローバル役割ドメインを混乱させる心配なく、独自の変数を使用できます.
(function(){
var now=new Date();
if (now.getMinutes()==01) {
console.log(now);
var test1=document.getElementById("test1");
test1.style.display="block";
}
})();