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.entries()方法
Object.entries()方法用于返回一个数组,该数组由作为参数传递的对象的可枚举属性[key,value]对组成。属性的顺序与手动循环对象的属性值所给出的顺序相同。
Object.entries()方法和Object.values()方法之间的区别
JavaScript中的Object.entries()方法返回一个数组,该数组包含作为参数传递的对象的可枚举属性[key,value]对,而JavaScript中的Object.values()方法返回一个数组,该数组的元素是在对象上找到的可枚举的属性值。请遵循以下示例,以更好地了解这两个函数之间的区别。
Input: var object = { 0: '23', 1: 'geeksforgeeks', 2: 'true' }; console.log(Object.values(object)); console.log(Object.entries(object)); Output: Array ["23", "geeksforgeeks", "true"] Array [["0", "23"], ["1", "geeksforgeeks"],["2", "true"]]
说明:在上面的示例中,已经创建了具有三个[key,value]对和object的对象。entries()方法返回该对象和object的[key,value]对。values()方法返回在该对象上找到的值。
应用范围:
- Object.entries()用于列出与对象相关的属性。
- Object.entries()用于列出对象的所有[键,值]对。
用法:
Object.entries(obj)
Parameters Used:
- obj : It is the object whose enumerable own property [key, value] pairs are to be returned.
返回值:
- Object.entries() returns an array consisting of enumerable property [key, value] pairs of the object passed.
下面提供上述函数的示例。
例子:
Input : const obj = { 0: 'adam', 1: 'billy', 2: 'chris' }; console.log(Object.entries(obj)[1]); Output : Array ["1", "billy"]
说明:在此示例中,已使用三个property [key,value]对创建了一个对象“obj”,并且Object.entries()方法用于返回该对象的第一个property [key,value]对。
Input : const obj = { 10: 'adam', 200: 'billy', 35: 'chris' }; console.log(Object.entries(obj)); Output : Array [ ["10", "adam"], ["35", "chris"], ["200", "billy"]]
说明:在此示例中,已使用三个property [key,value]对创建了一个对象“obj”,并且Object.entries()方法用于返回该对象的所有property [key,value]对。
下面提供了上述函数的代码。
代码1:
<script>
// creating an object constructor
// and assigning values to it
const obj = { 0: 'adam', 1: 'billy', 2: 'chris' };
// Displaying the enumerable property [key, value]
// pairs of the object using object.entries() method
console.log(Object.entries(obj)[1]);
</script>
输出:
Array ["1", "billy"]
代码2:
<script>
// creating an object constructor and
// assigning values to it
const obj = { 10: 'adam', 200: 'billy', 35: 'chris' };
// Displaying the enumerable property [key, value]
// pairs of the object using object.entries() method
console.log(Object.entries(obj));
</script>
输出:
Array [["10", "adam"], ["35", "chris"],["200", "billy"]]
异常:
- 如果传递的参数不是对象,则会导致TypeError。
- 如果在参数中传递的键不在property [key,value]对的范围内,则会导致RangeError。
参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries
注:本文由纯净天空筛选整理自Shubrodeep Banerjee大神的英文原创作品 Object.entries() In JavaScript。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。