《红宝书》 |什么是对象

什么是对象

对象是一组数据和功能的集合。

创建对象

通过new操作符和Object构造函数创建

let obj=new Object()
obj.width=100
obj.size="small"

通过字面量创建

let obj={
  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:用于创建当前对象的函数(构造函数),在上面例子中,objconstructor属性值就是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: ƒ}
    
原文地址:https://www.cnblogs.com/sanhuamao/p/14395725.html