function.apply( thisObj, argsArray )メソッドは、個数が決まっていない引数(可変長引数)を引き渡しながら、コンストラクタを継承したいときに使うメソッド。
構文
function.apply( thisObj, argsArray );
引数
- thisObj
- 継承するコンストラクタで、thisオブジェクトとして使用するオブジェクト。
- argsArray
- 継承するコンストラクタに渡す引数を格納した配列。
- 省略可能。
サンプル
詳しいサンプルは、「可変長引数付きapply()メソッドでコンストラクタを継承」のページにて。
<script type="text/javascript">
function funcA() {
this.$arg2 = funcA.arguments[0];
this.$arg3 = funcA.arguments[1];
}
function funcB( $arg1, $argsArray ) {
this.$arg1 = $arg1;
funcA.apply( this, $argsArray );
}
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() {
this.$arg2 = funcA.arguments[0];
this.$arg3 = funcA.arguments[1];
}
function funcB( $arg1, $argsArray ) {
this.$arg1 = $arg1;
funcA.apply( this, $argsArray );
}
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>
↓↓↓出力結果↓↓↓