JavaScript中的对象和对象构造函数?
在面向对象编程的生活世界中,我们已经知道类和对象的重要性,但是与其他编程语言不同,JavaScript没有其他语言所具有的传统类。但是JavaScript具有对象和构造函数,它们在大多数情况下以相同的方式工作以执行相同的操作。
- 构造函数是与“new”关键字一起使用的常规JavaScript函数。构造函数在JavaScript中有两种类型,即内置构造函数(数组和对象)和自定义构造函数(定义特定对象的属性和方法)。
- 当我们需要一种创建可以多次使用而不必每次都重新定义对象的对象“type”时,构造函数会很有用,这可以使用Object Constructor函数来实现。按照惯例,大写的构造函数名称会将其与常规函数区分开。
例如,考虑以下代码:
function Automobile(color) {
this.color=color;
}
var vehicle1 = new Automobile ("red");
函数“Automobile()”是一个对象构造函数,其属性和方法即“color”在其内部声明为关键字“this”。然后使用关键字“new”将使用对象构造函数定义的对象转换为即时对象。
调用新的Automobile()时,JavaScript执行以下两项操作:
- 它创建一个新的新对象(实例)Automobile()并将其分配给变量。
- 它将对象的构造函数属性“color”设置为Automobile。
Object.keys()方法
Object.keys()方法用于返回一个数组,该数组的元素是与直接在对象上发现的可枚举属性相对应的字符串。属性的顺序与对象在循环中应用于属性时手动给定的顺序相同。
Object.keys()将对象作为要返回其可枚举的自身属性的参数,并返回表示给定对象的所有可枚举属性的字符串数组。
应用范围:
- Object.keys()用于返回简单数组的可枚举属性。
- Object.keys()用于返回类似对象的数组的可枚举属性。
- Object.keys()用于以随机键顺序返回类似对象的数组的可枚举属性。
用法:
Object.keys(obj)
使用的参数:
- obj:是要返回其可枚举属性的对象。
返回值:
Object.keys()返回一个字符串数组,该字符串表示给定对象的所有可枚举属性。
下面提供上述函数的示例。
例子:
Input:var check = ['x', 'y', 'z']; console.log(Object.keys(check)); Output:['0', '1', '2']
说明:在此示例中,数组“check”具有三个属性值[x,y,z和object.keys()方法返回此数组的可枚举属性。属性的顺序与对象手动给定的顺序相同。
Input:var object = { 0:'x', 1:'y', 2:'z' }; console.log(Object.keys(object)); Output:['0', '1', '2']
说明:在此示例中,类似于对象“check”的数组具有三个属性值{0:'x',1:'y',2:'z'}和object.keys()方法返回此数组的可枚举属性。属性的顺序与对象手动给定的顺序相同。
Input:var object = { 70:'x', 21:'y', 35:'z' }; console.log(Object.keys(object)); Output:['21', '35', '70']
说明:在此示例中,类似对象“check”的数组具有三个属性值{70:'x',21:'y',35:'z'},并且对象为object.keys()方法在索引值的升序。
下面提供了上述函数的代码。
代码1:
<script>
// Returning enumerable properties
// of a simple array
var check = ['x', 'y', 'z'];
console.log(Object.keys(check));
</script>
输出:
['0', '1', '2']
代码2:
<script>
// Returning enumerable properties
// of an array like object.
var object = { 0:'x', 1:'y', 2:'z' };
console.log(Object.keys(object));
</script>
输出:
['0', '1', '2']
代码3:
<script>
// Returning enumerable properties of an array
// like object with random key ordering.
var object = { 70:'x', 21:'y', 35:'z' };
console.log(Object.keys(object));
</script>
输出:
['21', '35', '70']
异常:
- 如果传递的参数不是对象,则会导致TypeError。
- 如果没有将对象作为参数传递给该方法,则它将说服并将其视为对象。
参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
注:本文由纯净天空筛选整理自Shubrodeep Banerjee大神的英文原创作品 Object.keys() In JavaScript。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。