1.Object对象本身就是一个工具函数,可以将任意值转换为对象,我们理解这个转换主要有三个知识点
(1).如果参数为空,或者为undefined,或者为null,Object()返回的是一个空对象。
let obj = Object();
let obj = Object(undefined);
let obj = Object(null);
console.log(obj) // {}
复制代码
(2).如果参数为原始值,会将其转换为对应的包装对象。
let obj = Object(18);
obj instanceof Object // true
obj instanceof Number // true
let obj = Object('name');
obj instanceof Object // true
obj instanceof String // true
let obj = Object(true);
obj instanceof Object // true
obj instanceof Boolean // true
复制代码
(3). 如果参数为对象,它直接返回这个对象。
let arr = [];
let obj = Object(arr); // 返回原数组
obj === arr // true
let value = {};
let obj = Object(value) // 返回原对象
obj === value // true
let fn = function () {};
let obj = Object(fn); // 返回原函数
obj === fn // true
复制代码
2.Object 对象还有另外一个最重要的功能就是当构造函数使用。
let obj = new Object();
复制代码
它与字面量的写法 let obj = {} 是等价的,我们一般常用字面量的写法来声明一个新的对象。
其次它与工具函数的方法也很类似,都可以接收一个参数。
上述所列第一点、第二点一致。
区别在于第三点
当这个参数为对象的时候Object(value) 是返回这个对象,而new Object是生成一个新的对象,值是value。
未完待续
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END