什么是對象
對象是一組數據和功能的集合。
創建對象
通過new
操作符和Object
構造函數創建
let obj=new Object()
obj.width=100
obj.size="small"
通過字面量創建
let obj={
width:100,
size:"small"
}
存取屬性
屬性一般是通過點語法存取的:
let person={}
person.age=18 //存
person.age //取
此外也可以使用中括號,此時屬性名要用字符串形式:
let person={}
person["age"]=18 //存
person["age"] //取
//對於點語法,屬性名如果包含某些字符會報錯;此時可使用中括號:
let person={}
person["first name"]="chen"
person["first name"]
實例通用的屬性和方法
Object是所有對象的基類,所以所有Object實例都有如下屬性和方法:
-
constructor
:用於創建當前對象的函數(構造函數),在上面例子中,obj
的constructor
屬性值就是Object()
console.log(obj.constructor) //ƒ Object() { [native code] }
-
hasOwnProperty(propertyName)
:用於判斷當前對象實例上是否存在給定的屬性,屬性名必須為字符串console.log(obj.hasOwnProperty('name')) //true console.log(obj.hasOwnProperty('age')) //false
-
isPrototypeof(object)
:用於判斷當前對象是否為另一個對象的原型 -
propertyIsEnumerable(propertyName)
:用於判斷給定的屬性是否可以使用for-in
語句枚舉,屬性名必須為字符串。 -
toLocaleString()
:返回對象的字符串表示,該字符串反映對象所在的本地化執行環境console.log(obj.toLocaleString()) //"[object Object]"
-
toString()
:返回對象的字符串表示console.log(obj.toString()) //"[object Object]"
-
valueOf()
:返回對象對應的字符串、數值或字符串表示console.log(obj.valueOf()) //{id: 18, name: "hello", fun: ƒ}