js中Object方法
Object.is(val1, val2)
它接受两个参数并检查它们是否相等。如果相等,则输出为true ,否则为false 。
在Object.is()和 “ ==”之间有一个小差异,即在比较+0和-0时,前者为false, 而后者为 true。由此我们可以得出结论,Object.is()方法检查了甚至极性。
2.Object.assign Object.assign()
静态方法将一个或者多个源对象中所有可枚举的自有属性复制到目标对象,并返回修改后的目标对象。
const target = { a: 1, b: 2 };
const source = { b: 4, c: 5 };
const returnedTarget = Object.assign(target, source); //源对象可以有多个 针对于深浅拷贝,它不能用在多层次嵌套的对象上面,因为它只复制一层。因为assign复制的是属性值,所以针对第一层的对象来说肯定就是能拷贝的,但是针对第二层的来说此时复制的就是它的地址引用了,那么这样的话就是浅拷贝。
3.Object.getPrototypeOf()这个方法返回的是参数的对象的原型,这是获取原型对象的标准方法。
4.Object.setPrototypeOf(object,proto)为参数对象设置原型,返回该参数对象。方法用于将指定对象的原型对象设置到一个新的对象或null上。我的理解是将第一个参数的对象指向第二个参数(原型),这样就可以获取到原型上面的方法与属性。注意:该操作实际上是个很耗时的操作,如果对性能有更高的要求,不建议直接修改已有对象的原型,而应该通过Object.create()方法来创建一个新的对象。
5.Object.create(Object)
Object.create()方法接受一个对象为参数,然后以它为原型,返回一个实例对象。该实例完全继承原型对象的属性、方法。 create()方法生成的新对象,动态继承了原型。在原型上添加或修改任何方法,会立刻反映在新 对象之上。相当于浅拷贝
6.Object.getOwnPropertyNames()方法返回一个数组,成员是参数对象本身的所有属性的键名,不包含继承的属性键名。
7.Object.prototype.hasOwnProperty()
对象实例的hasOwnProperty方法返回一个布尔值,用于判断某个属性定义在对象自身,还是定义在原型链上。
8.in 运算符和 for…in 循环 运算符返回一个布尔值,表示一个对象是否具有某个属性。它不区分该属性是对象自身的属性,还是继承的属性。
9.ES5 引入了Object.keys方法,返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键名。
10.Object.values方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键值。
11.Object.entries()方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键值对数组(二维数组)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具