制作网站的方法有哪些内容,产品线下推广活动方案,能设计房子的软件,vue 网站做中英文切换1.Object.assign(target,source1,source2,...) 方法主要用于对象的合并#xff0c;将源对象source的所有可枚举属性合并到目标对象target上,此方法只拷贝源对象的自身属性#xff0c;不拷贝继承的属性。#xff08;从后向前覆盖#xff09; Object.assign方法实行的是浅拷贝…1.Object.assign(target,source1,source2,...) 方法主要用于对象的合并将源对象source的所有可枚举属性合并到目标对象target上,此方法只拷贝源对象的自身属性不拷贝继承的属性。从后向前覆盖 Object.assign方法实行的是浅拷贝而不是深拷贝。也就是说如果源对象某个属性的值是对象那么目标对象拷贝得到的是这个对象的引用。同名属性会替换。 Object.assign只能进行值的复制如果要复制的值是一个取值函数那么将求值后再复制。 Object.assign可以用来处理数组但是会把数组视为对象。 2.Object.create(prototype,[propertiesObject]) 使用指定的原型对象及其属性去创建一个新的对象 3.Object.defineProperties(obj,props) 通过多个描述符一次性定义多个属性接收两个参数要为之添加或修改属性的对象和另一个描述符对象其属性与要添加过修改的属性一 一对应。 const obj {}Object.defineProperties(obj, {a_: {value: 1,writable: true},a: {get() {return a_},set(newValue) {console.log(set劫持)this.a_ newValue}}})obj.a 2
4.Object.defineProperty(obj,prop,descriptor)(详细) 在一个对象上定义一个新属性或者修改一个对象的现有属性 并返回这个对象。 5.Object.keys(obj) 返回一个由一个给定对象的自身可枚举属性组成的数组数组中属性名的排列顺序和使用 for...in 循环遍历该对象时返回的顺序一致 两者的主要区别是 一个 for-in 循环还会枚举其原型链上的属性。 6.Object.values() 方法返回一个给定对象自己的所有可枚举属性值的数组值的顺序与使用for...in循环的顺序相同 ( 区别在于 for-in 循环枚举原型链中的属性 )。 Object.values会过滤属性名为 Symbol 值的属性。 7.Object.entries() 返回一个给定对象自身可枚举属性的键值对数组其排列与使用 for...in 循环遍历该对象时返回的顺序一致区别在于 for-in 循环也枚举原型链中的属性。 8.hasOwnProperty() 判断对象自身属性中是否具有指定的属性。 9.Object.getOwnPropertyNames() 返回一个由指定对象的所有自身属性的属性名包括不可枚举属性但不包括Symbol值作为名称的属性组成的数组。 10.isPrototypeOf() 判断一个对象是否存在于另一个对象的原型链上。 11.Object.setPrototypeOf(obj,prototype) 设置对象的原型对象 12.Object.is() 判断两个值是否相同。 如果下列任何一项成立则两个值相同 13.Object.freeze() 冻结一个对象冻结指的是不能向这个对象添加新的属性不能修改其已有属性的值不能删除已有属性以及不能修改该对象已有属性的可枚举性、可配置性、可写性。也就是说这个对象永远是不可变的。该方法返回被冻结的对象。 14.Objec t.isFrozen() 判断一个对象是否被冻结 . 15.Object.preventExtensions() 对象不能再添加新的属性。可修改删除现有属性不能添加新属性。 16.Object.getOwnPropertyDescriptor() 取得指定属性的属性描述符返回一个对象 两个参数所在的对象和要取得描述符的属性名 16.Object.getOwnPropertyDescriptors() 这个方法实际会在每个自有属性上调用Object.defineProperties()并在一个新对象中返回它们。 一个参数对象