65 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| title: Object Keys
 | |
| localeTitle: 对象键
 | |
| ---
 | |
| `Object.keys()`方法返回给定对象自己的可枚举属性的数组,其顺序与`for...in`循环提供的顺序相同(不同之处在于`for-in`循环枚举原型链中的属性为好)。
 | |
| 
 | |
| ## 句法
 | |
| ```
 | |
| Object.keys(obj) 
 | |
| ```
 | |
| 
 | |
| ### 参数
 | |
| 
 | |
| **OBJ**
 | |
| 
 | |
| 要返回其可枚举自身属性的对象。
 | |
| 
 | |
| [MDN链接](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys) | [MSDN链接](https://msdn.microsoft.com/en-us/LIBRary/ff688127%28v=vs.94%29.aspx)
 | |
| 
 | |
| ## 描述
 | |
| 
 | |
| `Object.keys()`返回一个数组,其元素是与直接在对象上找到的可枚举属性相对应的字符串。属性的顺序与通过手动循环对象的属性给出的顺序相同。
 | |
| 
 | |
| ## 例子
 | |
| ```
 | |
| var arr = ['a', 'b', 'c']; 
 | |
|  console.log(Object.keys(arr)); // console: ['0', '1', '2'] 
 | |
|  
 | |
|  // array like object 
 | |
|  var obj = { 0: 'a', 1: 'b', 2: 'c' }; 
 | |
|  console.log(Object.keys(obj)); // console: ['0', '1', '2'] 
 | |
|  
 | |
|  // array like object with random key ordering 
 | |
|  var an_obj = { 100: 'a', 2: 'b', 7: 'c' }; 
 | |
|  console.log(Object.keys(an_obj)); // console: ['2', '7', '100'] 
 | |
|  
 | |
|  // getFoo is property which isn't enumerable 
 | |
|  var my_obj = Object.create({}, { getFoo: { value: function() { return this.foo; } } }); 
 | |
|  my_obj.foo = 1; 
 | |
|  
 | |
|  console.log(Object.keys(my_obj)); // console: ['foo'] 
 | |
|  
 | |
|  // Create a constructor function. 
 | |
|  function Pasta(grain, width, shape) { 
 | |
|     this.grain = grain; 
 | |
|     this.width = width; 
 | |
|     this.shape = shape; 
 | |
|  
 | |
|     // Define a method. 
 | |
|     this.toString = function () { 
 | |
|         return (this.grain + ", " + this.width + ", " + this.shape); 
 | |
|     } 
 | |
|  } 
 | |
|  
 | |
|  // Create an object. 
 | |
|  var spaghetti = new Pasta("wheat", 0.2, "circle"); 
 | |
|  
 | |
|  // Put the enumerable properties and methods of the object in an array. 
 | |
|  var arr = Object.keys(spaghetti); 
 | |
|  document.write (arr); 
 | |
|  
 | |
|  // Output: 
 | |
|  // grain,width,shape,toString 
 | |
| 
 | |
| ``` |