摘要:所有對象都有屬性,指向其構造函數的屬性。代碼示例張三李四知識點總結操作符具體干了什么新建一個空對象將的屬性賦值給的屬性將的指向,并執行函數返回構造函數一般首字母大寫,用以區分普通的函數。
此刻想法: 接觸前端開發兩年了,雖然實際工作中編寫代碼沒有問題,但是對于前端的一些基礎知識點掌握得的確不牢固, 每一次仔細琢磨一個知識點,都會有新的領悟。就從這篇文章開始,記錄自己的前端學習歷程。
重點
1、js所有引用數據類型本質都是對象。 2、對象分為普通對象和函數對象。 3、所有對象都有_proto_屬性,指向其構造函數的prototype屬性。 4、只有函數對象有prototype屬性。
代碼示例
function Person(name,age){ this.name = name; this.age = age; } Person.prototype.alertName = function(){ alert(this.name); } var p1 = new Person("張三","18"); p1.alertAge = function(){ alert(this.age); } var p2 = new Person("李四","20"); p2.alertAge = function(){ alert(this.age); }
知識點總結:
1、new 操作符具體干了什么?
(1)新建一個空對象 var obj = {}; (2)將Person的protoype屬性賦值給obj的_proto_屬性 obj._proto = Person.prototype; (3)將Person的this指向obj,并執行Person函數 Person.call(obj); (4)返回obj return obj;
2、構造函數一般首字母大寫,用以區分普通的函數。
3、通過把要實現的方法alertName,賦值給構造函數Person的prototype屬性,實現了實例p1、p2共享此方法。實現了繼承的功能,達到了節省內存的目的。
4、當試圖得到一個對象的某個屬性時,如果這個對象本身沒有該屬性,那么會去它的_proto_中尋找。一直往上尋找,就形成了原型鏈。一直找到最上層,沒有則宣告失敗,返回undefined。最上層是Object.prototype._proto_值為null。
p1._proto_指向Person.prototype,Person.prototype._proto_指向Object.prototype, Object.prototype._proto_等于null。
5、函數的prototype屬性中的_proto_屬性和普通對象的_proto_屬性一樣,用來對應繼承關系。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/96001.html
摘要:前言原型鏈,即原型鏈條。原型的作用在中,每個對象都有自己的原型。訪問的屬性方法依舊不存在于該原型,則會繼續訪問該原型的原型 前言:原型鏈,即原型鏈條。它是由原型、原型的原型、原型的原型的原型...這一規則組合成的,經常被應用于繼承。 原型的作用在JS中,每個對象都有自己的原型。當我們訪問對象的屬性和方法時,JS會先訪問對象本身的屬性和方法。如果對象本身不包含這些屬性和方法,則訪問對象...
摘要:相當于在用原型繼承編寫復雜代碼前理解原型繼承模型十分重要。同時,還要清楚代碼中原型鏈的長度,并在必要時結束原型鏈,以避免可能存在的性能問題。 js是一門動態語言,js沒有類的概念,ES6 新增了class 關鍵字,但只是語法糖,JavaScript 仍舊是基于原型。 至于繼承,js的繼承與java這種傳統的繼承不一樣.js是基于原型鏈的繼承. 在javascript里面,每個對象都有一...
摘要:所以為了方便查看一個對象的原型,和中提供了這個非標準不是所有瀏覽器都支持的訪問器引入了標準對象原型訪問器。在的原型對象中,還包含一個屬性,這個屬性對應創建所有指向該原型的實例的構造函數。 JS原型? 有句簡潔直觀的描述:原型是Javascript中的繼承的基礎,JavaScript的繼承就是基于原型的繼承。 在JavaScript中,原型也是一個對象,通過原型可以實現對象的屬性繼承,J...
摘要:此用來定義通過構造器構造出來的對象的原型,構造器內部的代碼用來給對象初始化。 對象繼承 VS 類繼承 在 class-based 的面向對象的世界里,要出現對象,必須先有類。類之間可以繼承,類再使用 new 操作創建出實體,父子對象之間的繼承體現在父類和子類上。你不能說 對象 a 繼承了對象 b,只能說 class A 繼承了 class B,然后他們各自有一個實例a、b。 JS中實現...
摘要:可以通過構造函數和原型的方式模擬實現類的功能。原型式繼承與類式繼承類式繼承是在子類型構造函數的內部調用超類型的構造函數。寄生式繼承這種繼承方式是把原型式工廠模式結合起來,目的是為了封裝創建的過程。 js繼承的概念 js里常用的如下兩種繼承方式: 原型鏈繼承(對象間的繼承) 類式繼承(構造函數間的繼承) 由于js不像java那樣是真正面向對象的語言,js是基于對象的,它沒有類的概念。...
摘要:原型鏈和對象的原型是對象實例和它的構造函數之間建立的鏈接,它的值是構造函數的。對象的原型根據上文提到的構造調用函數的時候會創建一個新對象,自動將的原型指向構造函數的對象。 showImg(https://segmentfault.com/img/remote/1460000020185197); JS的原型、原型鏈一直是比較難理解的內容,不少初學者甚至有一定經驗的老鳥都不一定能完全說清...
閱讀 1213·2021-11-25 09:43
閱讀 1969·2021-11-11 10:58
閱讀 1187·2021-11-08 13:18
閱讀 2659·2019-08-29 16:25
閱讀 3509·2019-08-29 12:51
閱讀 3307·2019-08-29 12:30
閱讀 748·2019-08-26 13:24
閱讀 3683·2019-08-26 10:38