01. 建構函式
01. 建構函式的建立
01. 普通函式用new關鍵字建立
02. new 建構函式:不佔記憶體
03. 建構函式即是類
04. 寫在建構函式中的屬性為私有化
05. 寫在原型中的屬性與方法為共有的
02. 建構函式原型上的屬性及方法:
01. 字面量建立建構函式的原型屬性及方法;
02. 構造器指回自身: constructor: person;
03. 原型上的屬性及方法被所有的例項化物件所共享;
03. 原型的缺點:
01. 所有的物件都是共享的,乙個修改全域性影響
02. 不能像建構函式建立物件一樣賦值: var person = new person("jazz",20,"boy");
02. 原型: 是類(建構函式)自帶的屬性prototype
任何乙個函式都具備的屬性
該屬性是有個指標,指向乙個物件
原型可以被任何乙個建構函式共享其屬性
作用:可以通過prototype屬性給類新增自定義屬性或者方法
優點:原型建立的自定義屬性和方法是共享的(節省記憶體),建構函式建立的屬性和函式則是私有的;
03. prototype、protptype、__proto__
0.1 constructor: 原型物件prototype的屬性 --> 指向當前原型的建構函式
建構函式的.prototype.constructor === 建構函式
0.2 protptype: 建構函式的屬性 --> 指向原型
__proto__: 是例項物件的屬性, 指向建構函式所指的原型
例項化物件.__proto_ === 建構函式.prototype
0.3 使用字面量建立原型的問題:
(建構函式.prototype.constructor === 建構函式)// false
04. 例項化物件與建構函式及其原型的關係
01. 建構函式.prototype.isprototypeof(): 是原型物件的方法,可以判斷此物件是否指向該原型
01. 查詢物件的屬性:查詢例項物件中,是否存在該屬性,如果有就返回該屬性的值
02. 如果沒有,查詢原型物件中是否存在該屬性!如果存在,則返回該屬性的值
02. 例項化物件上, 能夠使用的屬性方法:
01. 建構函式的原型,新增自定義屬性
02. delete: 直接刪除物件屬性
03. 先從建構函式中取值,未找到再從原型中取值
01. in: 判斷某屬性是否存在建構函式或者原型中
console.log("name" in obj);// 存在為 true
02. hasownproperty() 判斷是否為例項物件的屬性(不會去原型中找)
03. 判斷某屬性是否僅存在原型中: (in方法判斷)==true && (hasownproperty)==false
function isinprototype(obj, name)
console.log(isinprototype(abox,"name"));// true
0.5 組合繼承
組合繼承: 原型鏈+借用建構函式(物件冒充)
借用建構函式來(物件冒充),繼承屬性
可以使用原型鏈來繼承方法
0.6 object物件的常用方法:
object.hasownproperty( ) 檢查屬性是否為例項化物件的屬性
object.isprototypeof( ) 乙個物件是否是另乙個物件的原型
object.propertyisenumerable( ) 是否可以通過for/in迴圈看到屬性
object.tostring( ) 定義乙個物件的字串表示
object.tolocalestring( ) 返回物件的本地字串表示
object.valueof( ) 指定物件的原始值
js原型及原型鏈
在建構函式建立出來的時候,系統會預設幫建構函式建立乙個原型物件。原型物件中的屬性和方法可以被建構函式建立出來的物件訪問。建構函式.prototyoe 屬性 方法 的查詢原則 當訪問物件的成員的時候,會在自身找有沒有,如果有直接使用,如果沒有找到,則去當前物件的原型物件中找,如果找到了直接使用 如果沒...
js原型及原型鏈
每個物件都有proto屬性用於指向建立它的建構函式的原型物件。function animal name animal.prototype.getname function animal.prototype.getage function var animal1 newanimal kate var ...
js基礎 原型和原型鏈
原型是js中的乙個重要知識點,之前一直都原型一知半解,最近在做js的基礎梳理,感覺很有必要做一下關於原型和原型鏈的總結。一 普通物件和函式物件 了解原型,所有我們需要知道js中變數歸根到底是啥,可能大家都聽說過 萬物皆物件。但物件也會有一定區分,存在 普通物件 和 函式物件,區分規則 通過 new ...