js的原型prototype究竟是什么?


Javascript也是面向對象的語言,但它是一種基於原型Prototype的語言,而不是基於類的語言。在Javascript中,類和對象看起來沒有太多的區別。

1.什么是prototype:

function定義的對象有一個prototype屬性,prototype屬性又指向了一個prototype對象。在prototype對象中有一個constructor屬性,這個constructor屬性同樣指向一個constructor對象,而這個constructor對象恰恰就是這個function函數本身。 用偽代碼和圖表表示如下:

 

 

 

可以看出這里的prototype是鏈狀的。employee.prototype對象中的constructor屬性指向employee函數。

源碼:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鳥教程(runoob.com)</title>
</head>
<body>

<script>
function employee(name,jobtitle,born){
    this.name=name; this.jobtitle=jobtitle; this.born=born; this.test = function(){ console.log("test...");} } var fred=new employee("Fred Flintstone","Caveman",1970); employee.prototype.salary=null; fred.salary=20000; document.write(fred.salary); </script> </body> </html>

 

2.prototype的作用:

    prototype允許我們在創建對象之后來改變對象或類的行為,並且這些通過prototype屬性添加的字段或方法所有對象實例是共享的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM