クラス内だけ、内外で使えるプロパティ・メソッド:jsのクラス(オブジェクト指向)

  1. <!DOCTYPE html>
  2. <html lang="ja">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>クラス内だけ、内外で使えるプロパティ・メソッド:jsのクラス(オブジェクト指向)</title>
  6. </head>
  7. <body>
  8. <h1>クラス内だけ、内外で使えるプロパティ・メソッド:jsのクラス(オブジェクト指向)</h1>
  9. <script type="text/javascript">
  10.   // 単純なクラスを定義
  11.   var SimpleObjects = function(soT)
  12.   {
  13.     // プロパティ:パブリック
  14.     this.soTextPb = "パブリックプロパティ(?)";
  15.     
  16.     // プロパティ:プライベート
  17.     var soTextPr = "プライベートプロパティ(?)";
  18.     
  19.     // メソッド:パブリック
  20.     this.soOutputPb = function()
  21.     {
  22.       document.write(this.soTextPb + "<br />");
  23.       document.write(soTextPr + "<br />");
  24.     }
  25.     
  26.     // メソッド:プライベート
  27.     var soOutputPr = function()
  28.     {
  29.       document.write(this.soTextPb + "<br />");
  30.       document.write(soTextPr + "<br />");
  31.     }
  32.   };
  33.   // インスタンス化
  34.   var runSimpleObject = new SimpleObjects("作成したインスタンスに対して追加したメソッド");
  35.   
  36.   document.write("▼パブリックメソッドを実行<br />");
  37.   // パブリックメソッドを実行
  38.   runSimpleObject.soOutputPb();
  39.   document.write("<br />");
  40.   
  41.   // プライベートメソッドを実行しようとすると「そんな関数ねぇ」って怒られる。
  42.   //runSimpleObject.soOutputPr();
  43.   
  44.   document.write("▼パブリックプロパティ(?)を出力<br />");
  45.   // パブリックプロパティ(?)を出力
  46.   document.write(runSimpleObject.soTextPb + "<br />");
  47.   document.write("<br />");
  48.   
  49.   // プライベートプロパティ(?)を出力:値は無いってことで「undefined」
  50.   //document.write(runSimpleObject.soTextPr + "<br />");
  51. </script>
  52. <div style="font-size:10pt;text-align:right;margin-top:0.5em;">
  53. <a href="//tips.recatnap.info/" target="_top">PCスキルの小技・忘却防止メモ</a> -
  54. <a href="//tips.recatnap.info/wiki/" target="_top">PCスキルの小技・忘却防止メモのまとめ(wiki)</a>
  55. </div>
  56. <div style="font-size:10pt;text-align:center;margin-top:0.5em;padding:0.5em;border-top:1px solid #ccc;">
  57. Copyright &copy; 2009 by PCスキルの小技・忘却防止メモ. All rights reserved.
  58. </div>
  59. </body>
  60. </html>