對(duì)象是類的實(shí)例,萬(wàn)事萬(wàn)物皆對(duì)象。
類式對(duì)象的類型,具體到某一個(gè)事物
對(duì)象是帶有屬性和方法的特殊數(shù)據(jù)類型。
創(chuàng)建對(duì)象
1.直接量創(chuàng)建對(duì)象
var object = {}
2.使用new關(guān)鍵字創(chuàng)建對(duì)象
var object = new Object()
對(duì)象屬性查詢
1.點(diǎn)語(yǔ)法: 對(duì)象.屬性
2.[]: 對(duì)象[屬性]
工廠模式
function fn(){
var obj = new Object();
obj.name = "張三";
obj.age = 20;
obj.sex = "男";
return obj;
}
var p1 = fn();
var p2 = fn();
工廠模式帶參數(shù):
function fn(a,b,c){
var obj = new Object();
obj.name = a;
obj.age = b;
obj.sex = c;
return obj;
}
var p1 = fn("張三",20,"男");
var p2 = fn("李四",30,"女");
構(gòu)造函數(shù)
函數(shù)名首字母大寫 使用this關(guān)鍵字進(jìn)行屬性賦值
沒有return返回值 調(diào)用時(shí)用new關(guān)鍵字
原型
每個(gè)函數(shù)都有一個(gè)原型屬性,叫做prototype
原型是一個(gè)對(duì)象,用它可以實(shí)現(xiàn)屬性的繼承
prototype 這個(gè)屬性的屬性值是一個(gè)對(duì)象(屬性的集合),默認(rèn)的只有一個(gè)叫做constructor的屬性指向這個(gè)函數(shù)本身。
每一個(gè)實(shí)例對(duì)象都有一個(gè)proto指針,指向構(gòu)造函數(shù)的prototype原型
原型對(duì)象的作用就是定義所有對(duì)象實(shí)例所共享的屬性和方法
hasOwnProperty() 判斷一個(gè)屬性是本地屬性(true)還是原型對(duì)象屬性(false)
in操作符 檢測(cè)對(duì)象是否包含某個(gè)屬性,可以是本地屬性也可以是原型屬性
原型鏈
當(dāng)訪問一個(gè)對(duì)象的屬性和方法是,如果當(dāng)前對(duì)象擁有,那么直接調(diào)用,如果當(dāng)前對(duì)象沒有,那么向他的父級(jí)查找,如果父級(jí)有,那么直接調(diào)用,否則繼續(xù)向上查找,直到找到object基類為止,如果最終都沒有找到就返回undefined
確定原型和實(shí)例的關(guān)系:可以通過兩種方式來(lái)確定原型和實(shí)例的關(guān)系
1.操作符 instanceof
2.isPrototypeof()方法