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)
网友评论