JS-Object(阮一峰js对象要点总结)

Object是个构造函数,可以通过它生成新的对象

const o1= {a:1}

const o2=newObject(o1)

o1.b='hello'

console.log(o1)//{ a: 1, b: 'hello' }

console.log(o2)//{ a: 1, b: 'hello' }

个人觉得new Object相当于浅拷贝,o1和o2数据各自发生改变,双方都会改变。

注意:new Objetct()相当于o={}

对象上部署方法

//部署在Object上的print方法,用来显示其他对象的内容

/*Object.print = function (o) {

console.log(typeof o)

}

const o = new Object()

Object.print(o)*/

//部署在prototype对象

Object.prototype.print=function() {

console.log(this)

}

constwalko=newObject()

walko.print()

2、Object

Object函数可以将各种值转为对应的构造函数生成的对象

Object(1)//等同于new Number(1)

console.log(Object(1)instanceofObject)// true

console.log(Object(1)instanceofNumber)// true

console.log(Object('kero')instanceofObject)// true

console.log(Object('kero')instanceofString)// true

console.log(Object(undefined)instanceofObject)// true

Object方法的参数是个对象,它总是返回原对象

const arr=[1,2,3,4,4]

console.log(Object(arr))//[ 1, 2, 3, 4, 4 ]

console.log(Object(arr)===arr)// true

3、Object静态方法

Object.kery(o)//通常使用此方法进行遍历对象

Object.getOwnpropertyNames(o)//遍历数组时,会将length这样的不可枚举属性输出

4、Object对象的实例方法

4.1、valueOf()

constnewo=newObject()

console.log(newo.valueOf() ===newo)//返回一个对象的值,more是返回对象本身

/*也可以通过自己写方法覆盖此实例方法*/

newo.valueOf=function() {

return2

}

console.log(1+newo)

你可能感兴趣的:(JS-Object(阮一峰js对象要点总结))