那个网站可以做logo,wordpress渗透经验,wordpress后台登录页,莱芜在线下载ES6#xff08;ECMAScript 2015#xff09;为JavaScript语言增加了很多新特性#xff0c;包括对象字面量属性的简写、计算属性名、方法的简写、对象的解构赋值、Object.assign()方法复制对象属性、Object.is()比较两个值等。以下是一些在ES6中经常使用的对象方法#xff1a…ES6ECMAScript 2015为JavaScript语言增加了很多新特性包括对象字面量属性的简写、计算属性名、方法的简写、对象的解构赋值、Object.assign()方法复制对象属性、Object.is()比较两个值等。以下是一些在ES6中经常使用的对象方法
Object.assign(target, …sources): 用于将所有可枚举的属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
javascriptlet obj1 { a: 1 };
let obj2 { b: 2 };
let obj3 { c: 3 };
Object.assign(obj1, obj2, obj3);
console.log(obj1); // { a: 1, b: 2, c: 3 }Object.create(proto, [propertiesObject]): 使用指定的原型对象及其属性创建一个新的对象。
let person {isHuman: false,printIntroduction: function() {console.log(My name is ${this.name}. Am I human? ${this.isHuman});}
};let me Object.create(person);me.name Matthew; // name 是 me 的一个属性
me.isHuman true; // 继承的属性也可以被重写me.printIntroduction();
// 输出: My name is Matthew. Am I human? trueObject.defineProperty(obj, propertyName, descriptor): 直接在一个对象上定义一个新属性或者修改一个对象的现有属性并返回这个对象。
let obj {}; // 创建一个新对象Object.defineProperty(obj, propertyName, {value: Hello World, // 设置属性的值writable: true, // 设置属性是否可写enumerable: true, // 设置属性是否可枚举configurable: true // 设置属性是否可配置
});Object.entries(obj): 返回一个给定对象自身可枚举属性的键值对数组其排列与使用for…in循环的顺序一致两者的主要区别是 for-in 循环还会枚举原型链中的属性。
let obj { foo: bar, baz: 42 };
for (let [key, value] of Object.entries(obj)) {console.log(${key}: ${value});
}// 输出:
// foo: bar
// baz: 42Object.freeze(obj): 可以冻结一个对象。一个被冻结的对象再也不能被修改冻结了一个对象则不能向这个对象添加新的属性不能删除已有属性不能修改该对象已有属性的可枚举性、可配置性、可写性以及不能修改已有属性的值。此外冻结一个对象后它的原型也不能被改变。冻结对象后如果尝试修改这个对象将会抛出TypeError错误。
let obj { prop: 42 };
Object.freeze(obj);// 下面的操作将会失败并抛出异常
obj.prop 33; // TypeError: Cannot assign to read only property prop of object #ObjectObject.getOwnPropertyDescriptor(obj, prop): 返回指定对象上一个自有属性对应的属性描述符。自有属性指的是直接赋予该对象的属性不包含从原型链上继承的属性。
let obj {property1: value1,property2: value2
};let descriptor1 Object.getOwnPropertyDescriptor(obj, property1);
let descriptor2 Object.getOwnPropertyDescriptor(obj, property2);console.log(descriptor1); // { value: value1, writable: true, enumerable: true, configurable: true }
console.log(descriptor2); // { value: value2, writable: true, enumerable: true, configurable: true }Object.getOwnPropertyNames(obj): 返回一个由指定对象的所有自身属性的属性名包括不可枚举属性但不包括Symbol值作为名称的属性组成的数组。
let obj { a: 1, b: 2, c: 3 };
Object.defineProperty(obj, d, {value: 4,enumerable: false
});console.log(Object.getOwnPropertyNames(obj));
// 输出: [ a, b, c, d ]