Ad
1: 2016-03-10 (木) 10:05:17 njf ソース バックアップ No.1 を復元して編集 現: 2016-03-12 (土) 20:05:08 njf ソース 編集
Line 8: Line 8:
 class TestClass{  class TestClass{
-     prm1:number +     prm1:number; 
 + 
     constructor(arg:number){      constructor(arg:number){
         this.prm1 = arg;          this.prm1 = arg;
Line 16: Line 16:
         alert(this.prm1 + "です");          alert(this.prm1 + "です");
     }      }
 + 
 }  }
 + 
 var testClass:TestClass = new TestClass(2);  var testClass:TestClass = new TestClass(2);
 + 
 testClass.showNumber();//=>2です  testClass.showNumber();//=>2です
Line 28: Line 28:
 class TestClass{  class TestClass{
-     prm1:number +     prm1:number; 
 + 
     constructor(arg:number){      constructor(arg:number){
         this.prm1 = arg;          this.prm1 = arg;
Line 36: Line 36:
         alert(this.prm1 + "です");          alert(this.prm1 + "です");
     }      }
 + 
 }  }
 + 
 class TestExtended extends TestClass{  class TestExtended extends TestClass{
 + 
     showNumber(){      showNumber(){
         this.prm1 ++;          this.prm1 ++;
Line 46: Line 46:
     }      }
 }  }
 + 
 + 
 + var testExtended:TestExtended = new TestExtended(2);
 + 
 + testExtended.showNumber(); // => 3です
 +*アクセス修飾子 [#e79aed65]
- var testExtended:TestExtended = new TestExtended(2);+アクセス修飾子は「public」と「private」がある。省略したときはpublicが採用される。 
 +publicはどこからでもアクセス可能で、privateはそのクラスの中からのみアクセス可能。privateを指定すると継承したクラスからもアクセスできない。たとえば上の例で
- testExtended.showNumber(); // => 3です+ private prm1:number;
 +とすると、継承したクラスでprm1にアクセスしているため、エラーが発生する。
 +**引数のアクセス修飾子 [#y3ce730b]
-*アクセス修飾子 [#e79aed65]+アクセス修飾子をコンストラクタの引数で使うとクラスプロパティの初期化のシンタックスシュガーとなる。つまり 
 + 
 + class TestClass{ 
 +  
 +   constructor(public prm1:number){ } 
 +  
 + } 
 + 
 +と 
 + class TestClass{ 
 +   prm1:number; 
 +  
 +   constructor(arg:number){ 
 +       this.prm1 = arg; 
 + } 
 + 
 +は同じである。ただしコンストラクタ以外の引数でアクセス修飾子は使えない。 
 + 
 +*アクセサー [#haa297e3] 
 +getやsetといったアクセサーが使える。ただし、ECMAScript 5でないと対応していないため、コンパイル時に設定が必要。また対応していないブラウザでエラーが出るかも。 
 + 
 + tsc -t ES5 yourfile.ts 
 + 
 +文法は以下の通り。 
 + 
 + class TestClass{ 
 +     private _prm1:number; 
 +  
 +     get prm1():number{ 
 +         return this._prm1; 
 +     } 
 +     set prm1(p:number){ 
 +         this._prm1 = p; 
 +     } 
 +  
 +  
 +     showNumber():void{ 
 +         alert(this.prm1  + "です"); 
 +     } 
 +  
 + } 
 + var tc:TestClass = new TestClass(); 
 + tc.prm1 = 10; 
 + tc.showNumber() // => 10です 
 + 
 +*スタティック変数 [#b92a80f6] 
 + 
 +インスタンスではなく、クラスに属するスタティック変数を定義することもできる。 
 + 
 + class TestClass1{ 
 +     static prm:number = 1; 
 +  
 +  
 +     showPrm(){ 
 +         alert(TestClass1.prm); 
 +     } 
 + } 
 +  
 + TestClass1.prm = 100; 
 +  
 + var tc:TestClass1 =new TestClass1(); 
 +  
 + tc.showPrm() // => 100


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 1859, today: 2, yesterday: 3
MenuBar
広告

ログイン

ユーザー名:


パスワード:





パスワード紛失

Portuguese | English | German | Greek | Japanese | Korean | Russian | T-Chinese top
NJF