首頁  >  文章  >  web前端  >  JavaScript為物件新增屬性和方法的屬性prototype

JavaScript為物件新增屬性和方法的屬性prototype

黄舟
黄舟原創
2017-11-04 10:27:242419瀏覽

定義和用法

prototype 屬性使您有能力為物件新增屬性和方法。

語法

object.prototype.name=value

實例

在本例中,我們將展示如何使用prototype 屬性來新增屬性給物件:

<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

prototype屬性的作用

  為了解決建構子的物件實例之間無法共享屬性的缺點,js提供了prototype屬性。

  js中每個資料型別都是物件(除了null和undefined),而每個物件都繼承自另一個對象,後者稱為「原型」(prototype)對象,只有null除外,它沒有自己的原型物件。

  原型物件上的所有屬性和方法,都會被物件實例所共用。

  透過建構函式產生物件實例時,會將物件實例的原型指向建構函式的prototype屬性。每一個建構函式都有一個prototype屬性,這個屬性就是物件實例的原型物件。

function Person(name,height){
this.name=name;
this.height=height;
} 
Person.prototype.hobby=function(){
return &#39;watching movies&#39;;
}
var boy=new Person(&#39;keith&#39;,180);
var girl=new Person(&#39;rascal&#39;,153); 
console.log(boy.name); //&#39;keith&#39;
console.log(girl.name); //&#39;rascal&#39;
console.log(boy.hobby===girl.hobby); //true

 上面程式碼中,如果將hobby方法放在原型物件上,那麼兩個實例物件都共用著同一個方法。我希望大家都能理解的是,對於建構子來說,prototype是作為建構子的屬性;對於物件實例來說,prototype是物件實例的原型物件。所以prototype即是屬性,又是物件。

以上是JavaScript為物件新增屬性和方法的屬性prototype的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn