JS中通过new Object()
方式创建对象时,可以传入一个参数来初始化对象属性。本文将介绍new Object()
时传入参数的一些细节。
1. new Object()
传入一个空对象
当new Object()
传入一个空对象时,返回的对象与直接使用对象字面量创建对象的效果一样。
const obj1 = new Object({});
const obj2 = {};
console.log(obj1); // {}
console.log(obj2); // {}
console.log(obj1 === obj2); // false
console.log(obj1 == obj2); // false
2. new Object()
传入非空对象
当new Object()
传入一个非空对象时,返回的对象将继承这个对象的所有属性和方法。
const obj1 = { a: 1, b: 2 };
const obj2 = new Object(obj1);
console.log(obj2); // { a: 1, b: 2 }
console.log(obj1 === obj2); // false
console.log(obj1 == obj2); // false
如果非空对象包含一个数字、字符串等基本类型,并且不是封装类型对象,则返回的对象与传入的参数不同。
const num = new Number(123);
const obj1 = new Object(num);
console.log(obj1); // { [[PrimitiveValue]]: 123 }
const obj2 = new Object("hello");
console.log(obj2); // { '0': 'h', '1': 'e', '2': 'l', '3': 'l', '4': 'o' }
在这些情况下,返回的对象将成为一个只有一个属性的对象。
3. 小结
通过实际的代码示例,我们介绍了new Object()
时传入参数的一些细节。除了基础知识之外,理解这些细节可以提高我们的JavaScript编程技能。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js中关于new Object时传参的一些细节分析 - Python技术站