Object.create( prototype )メソッドは、引数「prototype」に指定したオブジェクトをプロトタイプ(原形・模範)とし、新たなオブジェクトを生成するメソッド。
構文
Object.create( prototype )
引数
- prototype
- プロトタイプ(原形・模範)として使用するオブジェクトを指定。
第2引数でプロパティを設定することもできる。それについては、「Object.create( prototype, descriptors )メソッド」のページへ。
戻り値
引数「prototype」に指定したオブジェクトをプロトタイプとする新たなオブジェクト。
サンプル
<script type="text/javascript">
var $sampleObjectA = {
$sampleProp: 'サンプルプロパティA',
sampleMethod: function () {
document.write( 'this.$sampleProp:' + this.$sampleProp + '<br />' );
}
}
var $sampleObjectB = Object.create( $sampleObjectA );
document.write( '$sampleObjectB.$sampleProp:' + $sampleObjectB.$sampleProp + '<br />' );
$sampleObjectB.sampleMethod();
$sampleObjectB.$sampleProp = 'サンプルプロパティB';
document.write( '$sampleObjectB.$sampleProp:' + $sampleObjectB.$sampleProp + '<br />' );
$sampleObjectB.sampleMethod();
var $sampleObjectC = Object.create( $sampleObjectA );
document.write( '$sampleObjectC.$sampleProp:' + $sampleObjectC.$sampleProp + '<br />' );
$sampleObjectC.sampleMethod();
$sampleObjectC.$sampleProp = 'サンプルプロパティC';
document.write( '$sampleObjectC.$sampleProp:' + $sampleObjectC.$sampleProp + '<br />' );
$sampleObjectC.sampleMethod();
$sampleObjectA.sampleMethod2 = function () {
document.write( '②this.$sampleProp:' + this.$sampleProp + '<br />' );
}
$sampleObjectC.sampleMethod2();
</script>
var $sampleObjectA = {
$sampleProp: 'サンプルプロパティA',
sampleMethod: function () {
document.write( 'this.$sampleProp:' + this.$sampleProp + '<br />' );
}
}
var $sampleObjectB = Object.create( $sampleObjectA );
document.write( '$sampleObjectB.$sampleProp:' + $sampleObjectB.$sampleProp + '<br />' );
$sampleObjectB.sampleMethod();
$sampleObjectB.$sampleProp = 'サンプルプロパティB';
document.write( '$sampleObjectB.$sampleProp:' + $sampleObjectB.$sampleProp + '<br />' );
$sampleObjectB.sampleMethod();
var $sampleObjectC = Object.create( $sampleObjectA );
document.write( '$sampleObjectC.$sampleProp:' + $sampleObjectC.$sampleProp + '<br />' );
$sampleObjectC.sampleMethod();
$sampleObjectC.$sampleProp = 'サンプルプロパティC';
document.write( '$sampleObjectC.$sampleProp:' + $sampleObjectC.$sampleProp + '<br />' );
$sampleObjectC.sampleMethod();
$sampleObjectA.sampleMethod2 = function () {
document.write( '②this.$sampleProp:' + this.$sampleProp + '<br />' );
}
$sampleObjectC.sampleMethod2();
</script>
↓↓↓出力結果↓↓↓