ページへ戻る
印刷
技術系備忘録/TypeScript/メンバ関数ポインタ
をテンプレートにして作成 ::
シンクリッジ
xpwiki
:技術系備忘録/TypeScript/メンバ関数ポインタ をテンプレートにして作成
開始行:
TypeScript で、クラスのメンバ関数を、変数に入れる方法と、...
いわゆる メンバ関数ポインタ です。
メンバ関数を入れる変数の型は、普通の関数の場合と同じよう...
#prettify{{
var func : (arg:number)=>string;
}}
みたいな感じでOK。
コールするときは、
#prettify{{
func.call( クラス実体, 第1引数, 第2引数, ・・・ );
}}
という風にします。
以下、自分への備忘録を兼ねたサンプルコードです。
参考になれば幸いです。
#prettify{{
class CUser
{
constructor( private m_name:string, private m_money:num...
}
GetName( n : number ): string{
return this.m_name;
}
GetMoney( n : number ): string{
return (this.m_money + n).toString();
}
};
const table : { [key: string]: (arg:number)=>string } = ...
"名前": CUser.prototype.GetName, // クラス名.ptoro...
"所持金": CUser.prototype.GetMoney, // クラス名.pto...
};
const users : CUser[] = [ new CUser("一郎", 100 ), new C...
for( let userNo in users ){
let s : string = `UserNo:${userNo} `;
for( let key in table ){
let t = table[key].call( users[userNo], 99 ); // オブ...
s += `${key}は${t}。`;
}
console.log(s);
}
// 出力結果
// > UserNo:0 名前は一郎。所持金は199。
// > UserNo:1 名前は二郎。所持金は299。
// > UserNo:2 名前は三郎。所持金は399。
}}
終了行:
TypeScript で、クラスのメンバ関数を、変数に入れる方法と、...
いわゆる メンバ関数ポインタ です。
メンバ関数を入れる変数の型は、普通の関数の場合と同じよう...
#prettify{{
var func : (arg:number)=>string;
}}
みたいな感じでOK。
コールするときは、
#prettify{{
func.call( クラス実体, 第1引数, 第2引数, ・・・ );
}}
という風にします。
以下、自分への備忘録を兼ねたサンプルコードです。
参考になれば幸いです。
#prettify{{
class CUser
{
constructor( private m_name:string, private m_money:num...
}
GetName( n : number ): string{
return this.m_name;
}
GetMoney( n : number ): string{
return (this.m_money + n).toString();
}
};
const table : { [key: string]: (arg:number)=>string } = ...
"名前": CUser.prototype.GetName, // クラス名.ptoro...
"所持金": CUser.prototype.GetMoney, // クラス名.pto...
};
const users : CUser[] = [ new CUser("一郎", 100 ), new C...
for( let userNo in users ){
let s : string = `UserNo:${userNo} `;
for( let key in table ){
let t = table[key].call( users[userNo], 99 ); // オブ...
s += `${key}は${t}。`;
}
console.log(s);
}
// 出力結果
// > UserNo:0 名前は一郎。所持金は199。
// > UserNo:1 名前は二郎。所持金は299。
// > UserNo:2 名前は三郎。所持金は399。
}}
ページ名: