本系列随笔是本人的学习笔记,初学阶段难免会有理解不当之处,错误之处恳请指正。另:转载请注明出处。
简介
JavaScript 中,对象可以看做是“属性”的集合(这里的“属性”不仅是属性名,而是一个键/值对,即属性名和属性值)。
对象的创建方式
JavaScript 中可以用以下三种方式创建对象:
- 直接使用字面值对象(看起来同JSON格式);
- 使用 new 运算符创建(new 后面跟一个构造函数调用,JavaScript 中没有“类”的概念,对象是通过构造函数创建而来的)
- 使用 Object.create() 方法,其第一个参数指定对象的原型对象(可以理解为parent对象),第二个参数为可选参数
示例:
var a = {}; // #1,字面值创建方式,创建一个空对象 var b = { x: 1, y: 2 }; // #2,字面值创建方式,创建一个非空对象 var c = new Object(); // #3,通过 new 运算符创建,创建一个空对象,同 #1 var d = new Date(); // #4,通过 new 运算符创建,创建一个日期对象 var e = Object.create(Object.prototype); // #5,创建一个空对象,同 #1 和 #3 var f = Object.create(b); // #6,创建一个继承自 b 的对象 f.x = 3; // 并不会影响父对象 b 中的属性值 console.log(b); // { x: 1, y: 2 } console.log(f); // { x: 3 },这里虽然没有输出 y 属性,但是通过 f.y 能访问 y 属性值 console.log(f.y); // 2
in 与 hasOwnProperty() 的区别
in 可以检测对象的自有属性和继承属性,而 hasOwnProperty() 仅可用于检测对象的自有属性,例如:
var p = { x: 1, y: 2 }; var c = Object.create(p); c.z = 3; console.log("x" in c); // true console.log("z" in c); // true console.log(c.hasOwnProperty("x")); // false console.log(c.hasOwnProperty("z")); // true
未完待续。
来源:https://www.cnblogs.com/itwhite/p/12230148.html