Object常用方法

 const target = { a: 1, b: 2 };
 const source = { b: 4, c: 5 };
 ​
 const returnedTarget = Object.assign(target, source);

Object.assign() 合并多个对象, 有重复的,以参数位置靠后者为准, 合并后的结果会随着参数对象的修改而变化。

let obj = {a:1, b:2}
delete obj.a  //  delete obj['a']

删除回改变合并后的结果。

 obj.__proto__.toString = "yyy"//强行修改原型上的共有属性

一般来说,我们也不对原型内的共有属性进行修改,这样会引发很多问题。

Object.create()//方法创建一个新对象,使用现有的对象来提供新创建的对象的proto。
  • 查看自身所有属性:Obj.keys(obj)
  • 查看自身所有+共有属性:console.dir(obj)
  • 判断一个属性是自身属性还是原型中的共有属性:obj.hasOwnProperty('toString')

注意

let obj = {name:"jack"}
 obj.name == obj["name"]
 //这个写法是错误的:obj[name]
 //因为中括号会把内部的name当做变量求值;值如果不是字符串则自动变为字符串

另外,弄清楚inObject.prototype.hasOwnProperty()的区别:

  • in:如果指定的属性在指定的对象或其原型链中,则in 运算符返回true
  • hasOwnProperty() 方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性(也就是,是否有指定的键)。
posted @ 2022-06-09 11:52  我歌且谣  阅读(29)  评论(0编辑  收藏  举报