js基礎 原型和原型鏈

2022-08-15 19:21:22 字數 718 閱讀 7076

原型是js中的乙個重要知識點,之前一直都原型一知半解,最近在做js的基礎梳理,感覺很有必要做一下關於原型和原型鏈的總結。

一、普通物件和函式物件

了解原型,所有我們需要知道js中變數歸根到底是啥,可能大家都聽說過:萬物皆物件。但物件也會有一定區分,存在 普通物件 和 函式物件, 區分規則:通過 new function()建立的都是函式物件,其他為普通物件:

var o1 = {}, o2 = new object(); // typeof 都是object

var f1 = function(){}, f2 = new function('s'); // typeof 都是function

二、原型物件

定義乙個函式物件時都會包含一些預定義的原型:prototype。

普通物件不存在prototype屬性,但有乙個不對外公開的_proto_屬性。

function f1() {};  

console.log(f1.prototype); // f1{} 

從這可以看出,f1.prototype 就是f1的乙個例項物件;

三、原型鏈

js 在建立函式物件的時候都有乙個叫做 _proto_ 的內建屬性, 用於指向建立它的函式物件的原型prototype, 然後父一級別的物件有同樣的會指向它上一級的prototype,依次類推,知道指向的物件未null終止。

這一些一步一步指向的物件就想鏈條一樣,我們就把它定義成 原型鏈。

js基礎之原型和原型鏈 原型 1

原型其實就是function的乙個屬性,它定義了建構函式製造出的物件的共有祖先。通過該建構函式產生的物件,可以繼承該原型的屬性和方法。原型也是物件 簡單來說,我們建立的每乙個建構函式自出生開始就自動的帶有這個屬性,這個屬性叫做prototype。這個屬性是乙個指標,指向乙個物件。這個物件中的屬性和方...

JS原型和原型鏈

建立建構函式 function word words word.prototype 建立例項 var w new word hello world w.print function w.print hello world w.alert hello world function.prototype....

js原型鏈和原型

1 原型 在js中一切皆物件,那原型也是乙個物件,通過原型可以實現物件的屬性繼承,js的物件中包含著乙個 prototype 內部屬性,這個屬性所對應的就是物件的原型。prototype 作為物件的內部屬性不能被直接訪問,所以為了方便檢視乙個物件的原型,提供了 proto 這個非標準的訪問器,在js...