摘要:在默認情況下所有原型對象都會自動獲得一個構造函數屬性,這個屬性包含一個指向屬性所在函數的指針。原型與操作符通過對象能夠訪問給定屬性時返回,無論實在實例中還是原型中。通過此方法可以取得對象上所有可枚舉的實例屬性。
prototype
我們創建的每個函數都有一個prototype(原型)屬性,這個屬性時一個指針,指向一個對象(函數的原型對象),這個對象的用途是可以由特定類型的所有實例共享屬性和方法。在默認情況下所有原型對象都會自動獲得一個constructor(構造函數)屬性,這個屬性包含一個指向prototype屬性所在函數的指針。
function Person(){ }; Person.prototype.name = "jeck"; Person.prototype.sayName = function(){ console.log(this.name) }; var p1 = new Person("jeck", 13); p1.sayName(); //jeck var p2 = new Person("andy", 22); p2.sayName(); //jeck
Person.prototype指向原型對象
Person.prototype.constructor又返回指向Person
檢測一個屬性是否存在于實例中,還是存在于原型中。
function Person(){}; Person.prototype.name = "jeck"; var person1 = new Person(); person1.hasOwnProperty("name"); //false person1.name = "andy"; person1.hasOwnProperty("name"); //true原型與in操作符
通過對象能夠訪問給定屬性時返回true,無論實在實例中還是原型中。Object.keys()
通過此方法可以取得對象上所有可枚舉的實例屬性。
function Person(){}; Person.prototype.name = "jeck"; Person.prototype.age= "12"; Person.prototype.sex= "M"; console.log(Object.keys(Person.prototype)); //[name age sex] var person1 = new Person(); person1.name = "andy"; console.log(Object.keys(person1)); //[name]
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/79375.html
摘要:首先,需要來理清一些基礎的計算機編程概念編程哲學與設計模式計算機編程理念源自于對現實抽象的哲學思考,面向對象編程是其一種思維方式,與它并駕齊驅的是另外兩種思路過程式和函數式編程。 JavaScript 中的原型機制一直以來都被眾多開發者(包括本人)低估甚至忽視了,這是因為絕大多數人沒有想要深刻理解這個機制的內涵,以及越來越多的開發者缺乏計算機編程相關的基礎知識。對于這樣的開發者來說 J...
摘要:于是就有了構造函數和原型模式混合模式組合使用構造函數模式和原型模式創建自定義類型最常見的方式,就是組合模式。 創建對象 JS有六種數據數據類型,其中五種屬于基本數據類型:Null、Boolean、undefined、String、Number。而其它值都是對象。數組是對象,函數是對象,正則表達式是對象。對象也是對象。 來看一下對象的定義: 無序屬性的集合,其屬性可以包含基本值、對象、或...
摘要:創建構造函數后,其原型對象默認只會取得屬性至于其他的方法都是從繼承來的。上圖展示了構造函數的原型對象和現有的兩個實例之間的關系。所有原生的引用類型都在其構造函數的原型上定義了方法。 第6章我一共寫了3篇總結,下面是相關鏈接:讀《javaScript高級程序設計-第6章》之理解對象讀《javaScript高級程序設計-第6章》之繼承 工廠模式 所謂的工廠模式就是,把創建具體對象的過程抽象...
摘要:就是通過調用構造函數而創建的那個對象實例的原型對象。構造函數模式可以創建自定義引用類型,可以像創建內置對象實例一樣使用操作符。 數據類型: 簡單數據類型:Undefined、Null、String、Number、Boolean、Symbol 復雜數據類型:Object // Undefined:聲明,但未初始化 // Null:空對象指針 typeof操作符(檢測基本數據類型): ...
摘要:實例中的指針僅指向原型,而不指向構造函數。調用構造函數時會為實例添加一個指向最初原型的或者而把原型修改為另外一個對象就等于切斷了構造函數與最初原型之間的聯系。 面向對象的程序設計 ECMA-262定義對象:無序屬性的集合,其屬性可以包含基本值,對象或者函數。普通理解:對象是一組沒有特定順序的值。對象的每個屬性或方法都有一個名字,而每個名字都映射一個值。 每個對象都是基于一個引用類型創建...
閱讀 3222·2023-04-26 02:27
閱讀 2145·2021-11-22 14:44
閱讀 4096·2021-10-22 09:54
閱讀 3201·2021-10-14 09:43
閱讀 756·2021-09-23 11:53
閱讀 12728·2021-09-22 15:33
閱讀 2714·2019-08-30 15:54
閱讀 2687·2019-08-30 14:04