Object常用API及样例

Object.keys(obj) 返回一个由给定对象的所有自身属性的键组成的数组。

let obj = { a: 1, b: 2, c: 3 };  
console.log(Object.keys(obj)); // 输出: ["a", "b", "c"]

Object.values(obj)返回一个由给定对象自身的所有可枚举属性值的数组。

let obj = { a: 1, b: 2, c: 3 };  
console.log(Object.values(obj)); // 输出: [1, 2, 3]

Object.entries(obj) 返回一个给定对象自身可枚举属性的键值对数组。

let obj = { a: 1, b: 2, c: 3 };  
console.log(Object.entries(obj)); // 输出: [["a", 1], ["b", 2], ["c", 3]]

Object.assign(target, ...sources)将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。

let target = { a: 1, b: 2 };  
let source = { b: 4, c: 5 };  
const returnedTarget = Object.assign(target, source);  
console.log(target);       // 输出: Object { a: 1, b: 4, c: 5 }  
console.log(returnedTarget); // 输出: Object { a: 1, b: 4, c: 5 }

Object.create(proto, [propertiesObject]) 创建一个新对象,使用现有的对象来提供新创建的对象的proto

const person = {  
  isHuman: false,  
  printIntroduction: function() {  
    console.log(`My name is ${this.name}. Am I human? ${this.isHuman}`);  
  }  
};  
const me = Object.create(person);  
me.name = "Matthew"; // "name" 是 "me" 的属性.  
me.isHuman = true; // 继承的属性 "isHuman" 被 "me" 覆盖了.  
me.printIntroduction();  
// 输出: "My name is Matthew. Am I human? true"

Object.hasOwnProperty(obj, prop) 检查一个对象是否拥有某个属性,不考虑该对象的原型链。

let obj = { prop: 'exists' };  
console.log(Object.hasOwnProperty.call(obj, 'prop')); // 输出: true  
console.log(Object.hasOwnProperty.call(obj, 'toString')); // 输出: false

Object.freeze(obj) 冻结一个对象,这意味着你不能向这个对象添加新的属性,不能删除现有属性,不能修改属性的可枚举性、可配置性、可写性,以及属性的值。

let obj = { prop: 42 };  
Object.freeze(obj);  
obj.prop = 33;  
console.log(obj.prop); // 输出: 42  
obj.newProp = "It's new";  
console.log(obj.newProp); // 输出: undefined
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容