Object() 对象内置类(每一个对象都是它的实例)
通过在控制台中打印查看Object中提供的方法和属性,使用时直接Object.XXX来调用Object上的属性和方法。
Object
//控制台输出:ƒ Object() { [native code] }
dir(Object)
//控制台输出:ƒ Object() -- 展开如下
/*
arguments: (...)
assign: ƒ assign()
caller: (...)
create: ƒ create()
defineProperties: ƒ defineProperties()
defineProperty: ƒ defineProperty()
entries: ƒ entries()
freeze: ƒ freeze()
fromEntries: ƒ fromEntries()
getOwnPropertyDescriptor: ƒ getOwnPropertyDescriptor()
getOwnPropertyDescriptors: ƒ getOwnPropertyDescriptors()
getOwnPropertyNames: ƒ getOwnPropertyNames()
getOwnPropertySymbols: ƒ getOwnPropertySymbols()
getPrototypeOf: ƒ getPrototypeOf()
is: ƒ is()
isExtensible: ƒ isExtensible()
isFrozen: ƒ isFrozen()
isSealed: ƒ isSealed()
keys: ƒ keys()
length: 1
name: "Object"
preventExtensions: ƒ preventExtensions()
prototype: {constructor: ƒ, __defineGetter__: ƒ, __defineSetter__: ƒ, hasOwnProperty: ƒ, __lookupGetter__: ƒ, …}
seal: ƒ seal()
setPrototypeOf: ƒ setPrototypeOf()
values: ƒ values()
__proto__: ƒ ()
[[Scopes]]: Scopes[0]
*/
- Object上常用的方法有: assign、create、defineProperty、entries、freeze、keys…… 在MDN网站上查看这些常用方法的用法
1.1 Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
Object.assign(target, …sources)
- target:目标对象。/ sources:源对象。
- 返回值:目标对象。
let target = { a: 1, b: 2 };
let source = { b: 4, c: 5 };
let result = Object.assign(target, source, { c: 6, d: 7 });
console.log(target);//{ a: 1, b: 4, c: 6, d: 7 }
console.log(source);//{ b: 4, c: 5 }
console.log(result);//{ a: 1, b: 4, c: 6, d: 7 }
1.2 Object.create()方法创建一个新对象,使用现有的对象来提供新创建的对象的__proto__。
Object.create(proto)
- proto:新创建对象的原型对象。
- 返回值:一个新对象,带着指定的原型对象和属性。
let obj = {};
let newObj = Object.create(obj);
console.log(newObj.__proto__