prototype是典型物件導向語言,在js中經常用到class(類),類就是物件的方法,物件就是類的例項。
1.建構函式(constructor)
建構函式,就是提供了乙個生成物件的模板並描述物件的基本結構的函式。
特點:(1)乙個建構函式,可以生成多個物件,每個物件都有相同的結構。
(2)建構函式的函式名首字母必須大寫。
(3)內部使用this物件,來指向將要生成的物件例項。
(4)使用new操作符來呼叫建構函式,並返回物件例項。】
2.建構函式的缺點
(1)所有的例項物件都可以繼承建構函式中的屬性和方法。但是,同乙個物件例項之間,無法共享屬性。
(2)當每次呼叫new例項的時候都會建立乙個方法,但是方法的屬性都相同,記憶體位址不相同,也就是說即浪費資源,又沒必要這樣寫。
3.prototype(原型)屬性的作用
js中提供了prototype屬性解決建構函式的物件例項之間無法共享屬性的缺點。原型物件上的所有屬性和方法,都會被物件例項所共享。
js中每個資料型別都是物件(除了null和undefined),而每個物件都繼承自另外乙個物件,後者稱為「原型」(prototype)物件,只有null除外,它沒有自己的原型物件。
prototype,對於建構函式來說,是乙個屬性;對於物件例項來說,它是乙個原型物件
4.prototype用法:
//建構函式
function dog()
// 建立乙個cat()例項,具有dog()相同的屬性
// 顯示原型 prototype 建構函式上
dog.prototype.brid= function()
//__proto__ 隱示原型 例項上
var dog1= new dog()
dog1.__proto__.b = 222
5.原型鏈(prototype chain
//原型鏈:乙個建構函式的原型 = 另乙個建構函式的例項
function cat( )
cat.prototype = new dog()
prototype原型物件
js中物件可以直接使用 js中的例項是函式 構造器 或類的例項 es6 1.js的prototype屬性 prototype是函式的屬性,不過基本只在函式作為建構函式時才有意義。原型物件能過函式直接訪問,不能通過物件例項去訪問。原型 prototype 物件的所有屬性和方法,都能被例項物件共享。原型...
原型 Prototype 模式
模式定義 用乙個已經建立的例項作為原型,通過複製該原型物件來建立乙個和原型相同或相似的新物件。在這裡,原型例項指定了要建立的物件的種類。用這種方式建立物件非常高效,根本無須知道物件建立的細節。package prototype public class prototypetest system.ou...
原型prototype與原型鏈 proto
基於內建類原型擴充套件方法 以一道題為例,剖析原型與原型鏈的底層機制 呼叫當前例項物件的某個屬性 成員訪問 先看是否是自己的私有屬性,如果是則返回私有屬性的值 如果不是則沿著原型鏈 proto 向上查詢所屬類原型中的公有屬性 方法,直到查詢到基類object的原型為止。f1.proto gety 跳...