Object的基本使用与构造函数的属性
Object
构造函数创建一个对象包装器
一、语法
对象初始化器(Object initialiser)或对象字面量(literal)
{ [ nameValuePair1[, nameValuePair2[, …nameValuePairN] ] ] }
以构造函数形式来调用 new Object([value])
二、参数
nameValuePair1, nameValuePair2, … nameValuePairN
成对的名称(字符串)与值(任何值),其中名称通过冒号与值分隔。
value任何值。
在JavaScript中,几乎所有的对象都是Object
类型的实例,它们都会从Object.prototype
继承属性和方法。Object
构造函数为给定值创建一个对象包装器。Object
构造函数,会根据给定的参数创建对象,具体有以下情况
- 如果给定值是
null
或undefined
,将会创建并返回一个空对象 - 如果传进去的是一个基本类型的值,则会构造其包装类型的对象
-如果传进去的是引用类型的值,仍然会返回这个值,经他们复制的变量保有和源对象相同的引用地址
当以非构造函数形式被调用时,Object
的行为等同于new Object()
let obj1 = new Object(‘str’); Object
的行为等同于 new Object()
let obj1 = Object(‘str’);
console.log(obj1);String {‘str’}
let obj2 = Object(123);
console.log(obj2);Number {123}
let obj3 = Object(null)
console.log(obj3);{} 空对象
let obj4 = Object(undefined)
console.log(obj4);{} 空对象
三、构造函数的属性
Object.length 值为 1
Object.prototype 可以为所有 Object 类型的对象添加属性
Object.assign() 方法
Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象分配到目标对象。它将返回目标对象。
语法:Object.assign(target, …sources)
参数:target目标对象 sources源对象
返回值:目标对象
如果目标对象中的属性具有相同的键,则属性将被源对象中的属性覆盖。后面的源对象的属性将类似地覆盖前面的源对象的属性。