定義と使用法
プロトタイプ属性を使用すると、オブジェクトにプロパティとメソッドを追加できます。
構文
object.prototype.name=value
例
この例では、プロトタイプ属性を使用してオブジェクトにプロパティを追加する方法を示します:
<script type="text/javascript"> function employee(name,job,born) { this.name=name; this.job=job; this.born=born; } var bill=new employee("Bill Gates","Engineer",1985);employee.prototype.salary=null;bill.salary=20000; document.write(bill.salary); </script>
出力:
20000
プロトタイプ属性の役割
コンストラクター内のオブジェクト インスタンスの問題 ユーザー間で属性を共有できないという欠点を克服するために、js はプロトタイプ属性を提供します。
js のすべてのデータ型はオブジェクト (null と未定義を除く) であり、各オブジェクトは、独自の Prototype オブジェクトを持たない null を除き、「プロトタイプ」オブジェクトと呼ばれる別のオブジェクトを継承します。
プロトタイプオブジェクト上のすべてのプロパティとメソッドは、オブジェクトインスタンスによって共有されます。
オブジェクト インスタンスがコンストラクターを通じて生成される場合、オブジェクト インスタンスのプロトタイプはコンストラクターのプロトタイプ属性を指します。各コンストラクターには、オブジェクト インスタンスのプロトタイプ オブジェクトであるプロトタイプ属性があります。
function Person(name,height){ this.name=name; this.height=height; } Person.prototype.hobby=function(){ return 'watching movies'; } var boy=new Person('keith',180); var girl=new Person('rascal',153); console.log(boy.name); //'keith' console.log(girl.name); //'rascal' console.log(boy.hobby===girl.hobby); //true
上記のコードでは、ホビー メソッドがプロトタイプ オブジェクトに配置されている場合、両方のインスタンス オブジェクトが同じメソッドを共有します。皆さんに理解していただきたいのは、コンストラクターの場合、プロトタイプはコンストラクターの属性であり、オブジェクト インスタンスの場合、プロトタイプはオブジェクト インスタンスのプロトタイプ オブジェクトであるということです。したがって、プロトタイプは属性でもあり、オブジェクトでもあります。
以上がオブジェクトにプロパティとメソッドを追加するための JavaScript 属性プロトタイプの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。