平時常用例如arr.reverser或者arr.tostring等陣列的操作方法,可是這些方法有是**規定的了?為什麼我們可以直接使用呢?這些就是今天要為大家介紹的js原型鏈了。
let arr = [1, 3, 2, 0]
arr.reverse()
arr.tostring()
以上述栗子為例,通過控制台可以檢視arr中除了有"[1,3,2,0]"這個陣列外,還有乙個"__proto__"的物件,這個"arr._proto__"和建立它的物件的「array.prototype」是相等的。
那麼prototype又是什麼呢?
事實上任何乙個函式都預設有乙個prototype物件,哪怕是乙個空的函式。如果我們在乙個函式的prototype中建立了一些方法,那麼這些方法預設的也會繼承到由它建立的例項中。為大家畫乙個簡圖。
陣列是array函式的例項,所以arr._proto__ = array.prototype ;
array函式是object函式的例項,普通物件都是由object函式建立,object函式由function函式建立,因此可知 object.prototype = array._proto_= arr.__proto__.__proto__;
任何函式都是由function函式建立的,包括function;
arr取前五個物件 js JS原型鏈是什麼?
let arr 1,3,2,0 arr.reverse 4,3,2,1 arr.tostring 1,2,3,4 對於如上 呼叫arr.reverse 的時候會讓陣列實現逆序排,呼叫arr.tostring 會用字串形式展示陣列內容。那麼問題來了,arr的reverse方法是在 定義的?tostri...
js基礎梳理 究竟什麼是變數物件,什麼是活動物件?
首先,回顧下上篇博文中js基礎梳理 究竟什麼是執行上下文棧 執行棧 執行上下文 可執行 的執行上下文的生命週期 3.1 建立階段 3.2 執行階段在寫程式的時候會定義很多變數和函式,那js解析器是如何找到這些變數和函式的?變數物件是與執行上下文對應的概念,在執行上下文的建立階段,它依次儲存著在上下文...
什麼是js物件導向,特點,怎麼寫建構函式
什麼是js物件導向 首先,什麼是物件,簡單的來理解,物件是指乙個整體,對外提供一些操作,比如空調,電視機等等 物件導向的意思就是,使用物件的時候,你可以直接使用它所提供的功能而忽略其內部組成情況。好比如你不知道電視機是怎麼運作的,也不知道它是由什麼零件組成的,但你知道拿到遙控就可以操作電視機,這就是...