function.call( thisObj, arg1, arg2, … argN )メソッドは、決まった数の引数(固定長引数)を引き渡しながら、コンストラクタを継承したいときに使うメソッド。
構文
function.call( thisObj, arg1, arg2, … argN );
引数
- thisObj
- 継承するコンストラクタで、thisオブジェクトとして使用するオブジェクト。
- arg1, arg2, … argN
- 継承するコンストラクタに渡す引数。
- 省略可能。
サンプル
詳しいサンプルは、「固定長引数付きcall()メソッドでコンストラクタを継承」のページにて。
<script type="text/javascript">
function funcA( $arg1, $arg2 ) {
this.$arg1 = $arg1;
this.$arg2 = $arg2;
}
function funcB( $arg1, $arg2, $arg3 ) {
funcA.call( this, $arg1, $arg2 );
this.$arg3 = $arg3;
}
var $funcB = new funcB( '引数1', '引数2', '引数3' );
document.write( '$funcB.$arg1: ' + $funcB.$arg1 + '<br />' );
document.write( '$funcB.$arg2: ' + $funcB.$arg2 + '<br />' );
document.write( '$funcB.$arg3: ' + $funcB.$arg3 + '<br />' );
</script>
function funcA( $arg1, $arg2 ) {
this.$arg1 = $arg1;
this.$arg2 = $arg2;
}
function funcB( $arg1, $arg2, $arg3 ) {
funcA.call( this, $arg1, $arg2 );
this.$arg3 = $arg3;
}
var $funcB = new funcB( '引数1', '引数2', '引数3' );
document.write( '$funcB.$arg1: ' + $funcB.$arg1 + '<br />' );
document.write( '$funcB.$arg2: ' + $funcB.$arg2 + '<br />' );
document.write( '$funcB.$arg3: ' + $funcB.$arg3 + '<br />' );
</script>
↓↓↓出力結果↓↓↓