深入理解JavaScript对象:创建与原型

0 下载量 49 浏览量 更新于2024-08-28 收藏 104KB PDF 举报
"JavaScript 对象是编程中的基本构建块,它们是属性的无序集合,这些属性可以是数据或函数。在JavaScript中,一切皆为对象,包括字符串、数字、数组和日期等。对象可以通过原型链实现属性继承,使得对象能够获取其他对象的属性和方法。原型式继承是JavaScript的核心特性之一。 1. 创建JavaScript对象 - **对象直接量表示法**:最基础的创建方式是使用大括号`{}`来创建一个空对象,然后添加属性和值。例如: ```javascript var empty = {}; var point = {x: 3, y: 5}; ``` - **通过构造函数**:使用`new`关键字和构造函数来创建对象,例如内置的`Object`, `Array`, `Date`, `RegExp`构造函数: ```javascript var o = new Object(); var a = new Array(); var d = new Date(); var r = new RegExp("js"); ``` - **工厂函数**:创建自定义构造函数来生成具有特定结构的对象。 ```javascript function Person(name, age) { this.name = name; this.age = age; } var person1 = new Person("Alice", 25); ``` - **原型链创建**:利用原型对象(prototype)来创建具有共享属性的对象。例如: ```javascript function Shape() {} Shape.prototype.color = "blue"; var circle = new Shape(); console.log(circle.color); // "blue" ``` 2. 属性和方法 - **访问属性**:通过`.`运算符或者`[]`括号来访问和修改对象属性,如`object.property`或`object["property"]`。 - **动态添加属性**:可以在运行时向对象添加属性。 - **方法**:对象的函数属性被称为方法,例如`object.method()`。 3. 原型和原型链 - **原型对象**:每个对象都有一个`__proto__`属性指向它的原型,此原型对象可以继承其他对象的属性。 - **`Object.prototype`**:所有JavaScript对象的顶级原型,它包含了诸如`toString`和`hasOwnProperty`等基本方法。 - **`prototype`属性**:用于构造函数,其值是一个对象,该对象的属性和方法会被实例化对象继承。 4. 继承 - **原型链继承**:通过设置一个对象的`__proto__`指向另一个对象来实现继承。 - **构造函数继承**:使用`call`或`apply`方法将父类构造函数应用于子类实例。 - **组合继承**:结合了原型链和构造函数继承,是最常用的继承模式。 - **ES6的类继承**:提供了更面向对象的语法,但底层仍然是基于原型的继承。 5. 常见内置对象和方法 - `Array`:提供了数组操作的方法,如`push`, `pop`, `shift`, `unshift`, `slice`, `concat`等。 - `String`:包含字符串处理的方法,如`length`, `charAt`, `indexOf`, `substring`等。 - `Date`:处理日期和时间,例如`getFullYear`, `getMonth`, `getDate`等。 - `Object`:提供了一些操作对象的方法,如`keys`, `values`, `entries`, `assign`等。 - `Function`:函数也是对象,可以添加属性和方法。 理解并熟练掌握JavaScript对象、原型和继承机制对于深入学习JavaScript至关重要,因为这些概念构成了JavaScript语言的基础。"