建構函式建立物件:var obj=new object(); obj.屬性名=屬性值; 新增屬性
物件字面量 obj
function
createperson
(name, age, job)
return obj;
//建立乙個新物件,將物件返回
}var obj1 =
createperson
('張三',20
,'軟體工程師');
var obj2 =
createperson
('李四',22
,'軟體工程師'
);
使用new 建立物件,沒有顯式建立物件
建構函式的作用域賦值給新物件,this指向這個新物件,直接將屬性和方法賦值給this
建構函式中,不寫return語句 或 return 基本型別; 會將this作為返回值。 return物件; 會將物件作為返回值
function
person
(name, age, job)
}var obj3 =
newperson
('張三',20
,'軟體工程師');
var obj4 =
newperson
('李四',22
,'軟體工程師');
console.
log(obj3.sayname==obj4.sayname)
;//false
建立乙個新物件
將建構函式作用域賦值給新物件,this指向新物件
執行建構函式中的**,為新物件新增屬性
返回新物件 return this;
建構函式作為普通函式 直接呼叫是給window新增屬性和方法
function
person()
// 在原型上新增屬性和方法
person.prototype.name =
'張三'
; person.prototype.age =
'21'
; person.prototype.job =
'前端攻城獅'
person.prototype.
sayname
=function()
//必須先重寫原型再建立例項物件
var person1=
newperson()
;var person2=
newperson()
; console.
log(person1.sayname==person2.sayname)
;//true 引用同乙個方法
原型鏈:當**讀取某個物件的屬性時,從例項本身建構函式開始查詢,如果沒有找到,查詢__proto__ 指向的原型物件。
區分自身屬性和原型屬性
例項.hasownproperty(『屬性』) 方法繼承於object
『屬性』 in 例項; in操作符 可以通過物件訪問到給定屬性時(無論是例項中還是原型中)返回true。
問題一:使用單獨的person.prototype 新增屬性時,會保留原型中自帶的constructor屬性。
使用物件字面量新增屬性時 會重寫原型物件 ,失去預設的constructor屬性。原型指向新的記憶體空間。
問題二:先建立例項物件,再使用物件字面量新增原型屬性時,不能使用原型中的屬性和方法。
//屬性寫在建構函式裡面,每個物件都有自己的屬性
function
person
(name, age, job)
person.prototype=
}var person1=
newperson
('張三',29
,'軟體工程師');
var person2=
newperson
('李四',39
,'醫生');
person1.friends.
push
('tom');
//引用型別的屬性值 不共享
console.
log(person1.friends)
;//(3) ["lily", "nacy", "tom"]
console.
log(person2.friends)
;//(2) ["lily", "nacy"]
console.
log(person1.sayname==person2.sayname)
;//true 指向同乙個位址
function
person
(name, age, job)}}
var obj1=
newperson
('lily',25
,'後勤');
var obj2=
newperson
('nacy',25
,'財務');
obj1.
sayname()
;//lily
obj2.
sayname()
; console.
log(obj1.sayname== obj2.sayname)
//true 共享原型方法
function
person
(name, age, job)
return o;
}var obj=
newperson
('lily',25
,'後勤');
obj.
sayname()
;//lily
function
person
(name, age, job)
o.sayname
=function()
return o;
}var obj=
newperson3
('lily',25
,'後勤'
);
obj.
sayname()
;//lily
JS建立物件方式
一 物件 對個資料的封裝體,儲存多個資料的容器 可以統一管理多個資料 1 分類 1 內建物件 由es標準定義的物件,在任何es的實現都可以使用 例如 math string number function object 2 宿主物件 由js執行環境提供的物件 例如 dom bom 3 自定義物件 使...
js的建立物件方式
1 object建構函式建立 var user new object user.name xiu user.age 18 2 使用物件字面量表示法 var user 相當於 var user new object var user 物件字面量是物件定義的一種簡寫形式,目的在於簡化建立包含大量屬性的物...
js建立物件的方式
1.object 利用內建物件形式建立 var boy new object 屬性 boy.name 哈哈 屬性 boy.image 男性頭像 屬性 boy.healthpoint hp 100 屬性 boy.magicpoint mp 100 技能 boy.technologys 方法 boy.a...