72 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			72 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								title: Object Instantiation
							 | 
						|||
| 
								 | 
							
								localeTitle: 对象实例化
							 | 
						|||
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								## 对象实例化
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								在Javascript和大多数其他语言中,对象包含一系列属性,这些属性是键值对。当您需要构造对象时,可以使用多个选项。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### 初始化对象变量
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								您可以创建具有预定义属性的对象,如下所示:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```javascript
							 | 
						|||
| 
								 | 
							
								let myObject = { 
							 | 
						|||
| 
								 | 
							
								  name: "Dave", 
							 | 
						|||
| 
								 | 
							
								  age: 33 
							 | 
						|||
| 
								 | 
							
								 } 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### 创建一个空对象
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								这会在myObject变量中创建一个空对象:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```javascript
							 | 
						|||
| 
								 | 
							
								let myObject = new Object(); 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								当您希望向对象添加属性时,只需使用点表示法或括号表示法以及您选择的属性名称:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```javascript
							 | 
						|||
| 
								 | 
							
								myObject.name = "Johnny Mnemonic" 
							 | 
						|||
| 
								 | 
							
								 myObject["age"] = 55 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### 使用构造函数
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								您可以定义可用于创建对象的构造函数:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```javascript
							 | 
						|||
| 
								 | 
							
								function Kitten(name, cute, color) { 
							 | 
						|||
| 
								 | 
							
								  this.name = name, 
							 | 
						|||
| 
								 | 
							
								  this.cute = cute, 
							 | 
						|||
| 
								 | 
							
								  this.color = color 
							 | 
						|||
| 
								 | 
							
								 } 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								您可以通过调用构造函数来定义包含此对象实例化的变量:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```javascript
							 | 
						|||
| 
								 | 
							
								let myKitten = new Kitten("Nibbles", true, "white") 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### 的Object.create()
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Object.create()方法(首先在ECMAScript 5.1中定义)允许您创建对象。它允许您为新对象选择原型对象,而无需事先定义构造函数。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```javascript
							 | 
						|||
| 
								 | 
							
								// Our pre-defined object 
							 | 
						|||
| 
								 | 
							
								 let kitten = { 
							 | 
						|||
| 
								 | 
							
								  name: "Fluff", 
							 | 
						|||
| 
								 | 
							
								  cute: true, 
							 | 
						|||
| 
								 | 
							
								  color: "gray" 
							 | 
						|||
| 
								 | 
							
								 } 
							 | 
						|||
| 
								 | 
							
								 // Create a new object using Object.create(). kitten is used as the prototype 
							 | 
						|||
| 
								 | 
							
								 let newKitten = Object.create(kitten) 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								 console.log(newKitten.name) // Will output "Fluff" 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#### 更多信息
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								[关于使用对象的MDN文章](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects)
							 |