JavaScript 制御構造 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(this)
(with 省略表記)
716行: 716行:
  
 
=== with 省略表記 ===
 
=== with 省略表記 ===
 +
*with(document){ ... }
 +
:と上記のようにすると{ ... }で囲われた部分でdocumentというオブジェクトの階層表記を省略することができます。上記のサンプルでは何度も何度もdocumentというキーワードが登場してしまっていて煩雑になっています。このコード記述労力を低減することができる構造文です。VBAという言語でも似たような省略記法が実現できますので、VBAを知っている人には理解しやすいと思います。
 +
 +
 +
サンプル
 +
<syntaxhighlight lang="javascript" line start="1">
 +
<HTML>
 +
<HEAD>
 +
<TITLE>JavaScript this</TITLE>
 +
</HEAD>
 +
<BODY>
 +
JavaScript this<br />
 +
<SCRIPT Language="JavaScript">
 +
<!--
 +
var Num =10000;
 +
function objNewCreate(){
 +
    with(document){
 +
        write("■自作関数obNewCreate this.Num 初期値<br />");
 +
        write("this.Num = " + this.Num + "<br />");   
 +
    }
 +
    this.Num = 5000;
 +
    with(document){
 +
        write("■自作関数obNewCreate this.Num = 5000 代入後<br />");
 +
        write("this.Num = " + this.Num + "<br />");   
 +
    }
 +
}
 +
 +
with(document){
 +
    write("<br />");
 +
    write("◎Create1オブジェクト生成 new<br />");
 +
}
 +
 +
objNewCreate1 = new objNewCreate();
 +
 +
with(document){
 +
    write("<br />");
 +
 +
    write("■オブジェクトにぶら下げた変数プロパティの出力<br />");
 +
    write("objNewCreate1.Num = " + objNewCreate1.Num + "<br />");
 +
    write("■objNewCreate1オブジェクトはトップレベルのwindow = this オブジェクトの下に関連付けられている。<br />");
 +
    write("this.objNewCreate1.Num = " + this.objNewCreate1.Num + "<br />");
 +
    write("■objNewCreate1オブジェクトはトップレベルのwindow = this オブジェクトの下に関連付けられている。<br />");
 +
    write("window.objNewCreate1.Num = " + window.objNewCreate1.Num + "<br />");
 +
 +
    write("<br />");
 +
    write("■トップレベルからの関数呼び出し オブジェクト生成無し。<br />");
 +
    write("Num = " + Num + "<br />");   
 +
}
 +
objNewCreate();
 +
with(document){
 +
    write("Num = " + Num + "<br />");   
 +
}
 +
-->
 +
</SCRIPT>
 +
</BODY>
 +
</HTML>
 +
</syntaxhighlight>
 +
[[Media:JavaScript SeigyoKozo with.html|実行結果サンプル]]
 +
 +
これは、コードの記述量が減る場合もありますが、インデントが多くなります。なにが便利なのかは各自で見極めてほしいと思います。
  
 
== 関数 ==
 
== 関数 ==

2016年2月15日 (月) 00:00時点における版



個人用ツール
名前空間

変種
操作
案内
ツールボックス